繁体   English   中英

在MainActivity中启动可运行对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM