我有一个意图服务,我开始在一个单独的进程(我将它包含在清单中),并且该进程正在启动,但我在OnHandleIntent开头的日志永远不会被调用。我希望这是一个单独的过程,因为它正在做一些繁重的工作,需要它可以得到的所有记忆。
这是服务代码:
public class ProcessingService extends IntentService {
private final String TAG = "Processing Service";
public ProcessingService() {
super("ProcessingService");
}
@Override
protected void onHandleIntent(Intent intent) {
Log.d(TAG, "On Handle started");
/../
}
}
这是我开始的地方:
public void doneBtn(View v) {
Log.d(TAG, "button pressed, starting service");
Intent intent = new Intent(MyActivity.this, ProcessingService.class);
startService(intent);
finish();
}
我也尝试使用应用程序上下文调用服务,结果相同。
当然,在清单中,在应用程序范围内:
<service android:name=".myapp.task.ProcessingService" android:process=":myserviceprocess"/>
按下按钮,创建进程并完成活动,但是永远不会触发onHandleIntent中的登录(并且其中没有其他工作完成)。将Intent Service放在一个单独的进程上有什么不对劲吗?我应该进行常规服务,然后从中产生异步任务吗?
答案 0 :(得分:0)
相同的代码对我来说很好。我希望您尝试一些方法来调试此问题: -
尝试调试它。在Service类的onHandleIntent()中放置一个断点,看看控件是否到达那里。
尝试在调用startService()后删除finish()并查看它是否有效。