2012-07-07 75 views
-1

據我所知,在啓動應用程序20秒後,我應該在Logcat中看到日誌「鬧鐘」,但沒有發生。我錯過了什麼?Android AlarmManager無法工作

public class MainActivity extends Activity { 
    private PendingIntent pendingIntent; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Intent intent = new Intent(MainActivity.this, MainActivity.class); 
     pendingIntent = PendingIntent.getService(MainActivity.this, 1, intent, 1); 

     AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
     manager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 20000, pendingIntent); 

     Log.d("alarm", "alarm"); 
    } 
} 

回答

1

看來你應該使用

getActivity (Context context, int requestCode, Intent intent, int flags) 

正如你Intent指定活動類,而不是服務。接下來,最後一個參數(標誌)可以包含PendingIntent類中常量的值。如前所述,第二參數應該是0,因爲它目前沒有使用。請參閱this問題的樣本用法。

0

嘗試

pendingIntent = PendingIntent.getService(MainActivity.this, 0, intent, 0); 

第三個參數是當前不used.Check PendingIntent