问题描述:
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 {
@Override
protected String doInBackground(String... params) {
ArrayList list = Ex_checkboxActivity.getJarList();
ArrayList selecteds = hasSelecteds();
for (int x = 0; 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没有变过。