安卓service的开启线程 并每隔一段时间传回主方法结果
时间: 2024-05-29 13:11:35 浏览: 22
您可以在Android Service的onStartCommand方法中开启一个新线程,并且在其中执行需要执行的操作。在操作完成后,您可以使用Handler或BroadcastReceiver将结果传回主方法。
以下是一个示例代码:
public class MyService extends Service {
private Handler mHandler;
@Override
public void onCreate() {
super.onCreate();
mHandler = new Handler();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// 开始执行操作
new Thread(new Runnable() {
@Override
public void run() {
// 执行操作
final String result = doSomething();
// 将结果传回主方法
mHandler.post(new Runnable() {
@Override
public void run() {
// 将结果传回主方法
sendResult(result);
}
});
}
}).start();
// 每隔一段时间执行操作
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
onStartCommand(null, 0, 0);
}
}, 1000*60*5); // 5分钟后再次执行
return super.onStartCommand(intent, flags, startId);
}
private String doSomething() {
// 执行操作
return "操作完成";
}
private void sendResult(String result) {
// 将结果传回主方法
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
在上面的代码中,我们在onStartCommand方法中开启一个新线程,并在其中执行操作。在操作完成后,我们将结果传回主方法。此外,我们还使用Handler在每隔一段时间后再次执行操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)