[英]Starting a runnable in the MainActivity
我在audioService.java
中有一个可运行的audioService.java
,它可以执行某些任务。 服务中的runnable,我在服务中启动了runnable。
AudioService.java
@Override
public int onStartCommand(Intent intent, int flags, int startId){
new Thread(new audioRunnable()).start(); //starting the thread
return super.onStartCommand(intent, flags, startId);
}
@Override
public class audioRunnable implements Runnable {
@Override
public void run() {
// task has been carried out
}
}
我这样在MainActivity中启动服务
@Override
Protected void onCreate(){
Intent intent = new Intent(MainActivity.this, audioService.class);
startService(intent);
}
这是正确的方法吗?
您不需要调用runOnUiThread()
,只需执行:
Intent intent = new Intent(MainActivity.this, audioService.class);
startService(intent);
在按钮上设置的OnClickListener#onClick
。
这将启动服务,并且在服务内部您已经创建了一个新线程(非ui线程)来执行// task has been carried out
。
顺便说一句,请考虑IntentService
并重写onHandleIntent
,并// task has been carried out
在此方法中// task has been carried out
,此操作将自动在工作线程中完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.