我希望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秒启动一次,但它什么都不做。
我错过了什么?
答案 0 :(得分:1)
您必须创建一个Intent
来呼叫您的Service
,并使用方法PendingIntent
将其放入getService()
,如下所示:
Intent serviceIntent = new Intent(context, TheService.class);
PendingIntent pendingIntent = PendingIntent.getService(this,0, intent, 0);