首页 > android service已经启动,service没有被杀死,一直存在,可是却不工作了。

android service已经启动,service没有被杀死,一直存在,可是却不工作了。

问题描述:
android service已经启动,service没有被杀死,一直存在,可是却不工作了。

相关代码:

//startservice
public int onStartCommand(Intent intent, int flags, int startId) {
       if (intent==null){ return START_STICKY_COMPATIBILITY; }
       MyAsyncTask testcase = new MyAsyncTask();
       testcase.executeOnExecutor(MyAsyncTask.SERIAL_EXECUTOR);
       return super.onStartCommand(intent, flags, startId);
}

//AsyncTask单线程模式运行,没有更新ui的需求
private class MyAsyncTask extends AsyncTask<String, Integer, String> {

       @Override
       protected String doInBackground(String... params) {
           ArrayList<String> list = Ex_checkboxActivity.getJarList();
           ArrayList<Integer> selecteds = hasSelecteds();
           for (int x = 0; x < selecteds.size(); x++) {
               String ischeckmodel = list.get(selecteds.get(x));
               runUIAThread uia = new runUIAThread(ischeckmodel);
               uia.run();
               publishProgress(x);
           }
           return "Done";
}

//线程具体工作
@Override
    public void run() {
        Object z = Ex_checkboxActivity.testcasemap.get(ischeckmodel);
        String[] result = (String[]) z;
        final String pname = result[0].toString();
        final String cname = result[1].toString();
        String commandstr = "uiautomator runtest " + ischeckmodel + " -c " + cname;
        String errorstr = ShellUtils.execCommand(commandstr, false, true).errorMsg;
       //......略
    }

我在一个service里用AsyncTask可以吗?运行起来没问题,就是会无缘无故不工作了。
线程里有Runtime.getRunTime().exec的命令运行(会启动另一个进程,但是进程也没有被杀,依然存在的),完成耗时会很长(最长2小时)。
有什么办法可以查看一下当前service的状态什么的?或者让当前service可以继续工作。

报错信息:
无报错信息,进程一直存在,没有被杀。pid没有变过。

【热门文章】
【热门文章】