0

我有一个意图服务,我正在一个单独的进程中启动(我将它包含在清单中),并且该进程正在启动,但我在 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 放在单独的进程中是否有问题?我应该做一个常规服务然后产生一个异步任务还是什么?

4

1 回答 1

0

相同的代码对我来说工作正常。我希望您尝试一些方法来调试此问题:-

  • 尝试调试它。在你的服务类的 onHandleIntent() 中放置一个断点,看看控制是否到达那里。

  • 在调用 startService() 后尝试删除 finish() 并查看它是否有效。

于 2013-03-01T23:10:50.897 回答