2012-08-26 67 views
0

我試圖做一個服務,叫醒並在一分鐘後再次調用本身(在這個例子中,我知道它不好的電池)。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想這一點,它的工作原理,但我需要它在一個正常的服務工作:(。

謝謝

回答

0

我剛剛結束了使用服務和IntentService。在INT entService使用AlarmManager,然後調用服務。

1

使用

PendingIntent.getService 

PendingIntent.getBroadcast 

你越來越廣播意圖。

+0

它仍然無法正常工作:( – xtrimsky

+0

我想你應該叫super.oncreate在上創建功能。此外,我想你最好使用intentservice,它更易於管理 – nandeesh

+0

哦對不起,我有super.onCreate() ;在創建函數中,我只是刪除了一些無用的代碼,以使它更簡單,但我錯誤地刪除了這個 – xtrimsky

相關問題