Android: IntentService启动但是onHandleIntent没有执行

Android: IntentService starts but onHandleIntent is not executed

我希望 IntentService 每 10 秒 运行 并放置一个简单的调试行。这是我的代码:

在清单中:

<service android:name="com.test.test.TheService" />

创建警报管理器以每 10 秒调用一次服务

am.setRepeating(AlarmManager.RTC_WAKEUP,
                    cal.getTimeInMillis(),
                    10000,
                    servicePendingIntent);

服务本身

public class TheService extends IntentService {

    public static int SERVICE_ID = 1;

    public TheService() {
        super("TheService");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        Log.d("service","I'm in on Handle Intent");
    }
}

在模拟器的监视器中,我每 10 秒就会看到这条线

1270-1297/system_process I/ActivityManager: START u0 {flg=0x4 cmp=com.test.test/.TheService (has extras)} from pid -1

尽管上面写着"has extras",但实际上我并没有添加任何额外内容。一般来说,它看起来很好,但调试永远不会打印出来,调试代码上的断点永远不会停止,就好像服务每 10 秒启动一次,但它什么也没做。

我错过了什么?

您必须创建一个 Intent 来调用您的 Service,并使用方法 getService() 将其放入 PendingIntent,如下所示:

Intent serviceIntent = new Intent(context, TheService.class);
PendingIntent pendingIntent = PendingIntent.getService(this,0, intent, 0);