我試圖做一個服務,叫醒並在一分鐘後再次調用本身(在這個例子中,我知道它不好的電池)。Android的服務再次調用本身1分鐘後
下面是部分代碼:
public class SpeechService extends Service {
@Override
public void onCreate() {
super.onCreate();
setUpNextAlarm();
}
public void setUpNextAlarm(){
Intent intent = new Intent(SpeechService.this, this.getClass());
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, 0);
long currentTimeMillis = System.currentTimeMillis();
long nextUpdateTimeMillis = currentTimeMillis + 1 * DateUtils.MINUTE_IN_MILLIS;
// Schedule the alarm!
AlarmManager am = (AlarmManager)ContextManager.getApplicationContext().getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP,nextUpdateTimeMillis, pendingIntent);
Log.e("test","I am back!");
}
protected void onHandleIntent(Intent intent)
{
Log.e("test","I am back!");
setUpNextAlarm();
}
}
正如你看到的,我號召服務setUpNextAlarm創建,我看到了日誌結尾,但隨後的服務永遠不會被再次調用。我曾在一個IndentService想這一點,它的工作原理,但我需要它在一個正常的服務工作:(。
謝謝
它仍然無法正常工作:( – xtrimsky
我想你應該叫super.oncreate在上創建功能。此外,我想你最好使用intentservice,它更易於管理 – nandeesh
哦對不起,我有super.onCreate() ;在創建函數中,我只是刪除了一些無用的代碼,以使它更簡單,但我錯誤地刪除了這個 – xtrimsky