Android:IntentService启动但未执行onHandleIntent

时间:2016-08-22 14:03:50

标签: android android-intentservice

我希望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

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

我错过了什么?

1 个答案:

答案 0 :(得分:1)

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

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