AndroidManagerでAlarmManagerを学習しようとしています。AlarmManager.ELAPSED_REALTIME_WAKEUPの使用を理解するためにdocを見つけました。しかし、これを私のアプリで使用したとき、アラーム間隔の時間がここにAlarmManager.ELAPSED_REALTIME_WAKEUPはandroidで何を行うのですか
alarmMgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime()+10*1000, alarmIntent);
を設定するが、何もhappens.Please somenoneがAlarmManager.ELAPSED_REALTIME_WAKEUP
の意味を説明した後、再び活動を呼び出すことアラームマネージャを考えて戻るボタンをクリックします。 AlarmManager.ELAPSED_REALTIME_WAKEUP
とは対照的に、私はAlarmManager.RTC_WAKEUP
使用する
MainActivity.java
public class MainActivity extends AppCompatActivity {
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
alarmMgr = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
alarmIntent = PendingIntent.getActivity(this, 0, intent,0);
Log.d("asd","initialized alarmintent");
alarmMgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime()+10*1000, alarmIntent);
Log.d("asd", "alarm set");
}
}
AlarmReceiver.java
public class AlarmReceiver extends AppCompatActivity
{
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intent_layout);
Log.d("asd","writing textview");
tv=(TextView)findViewById(R.id.textview);
tv.setText("called");
}
}
「しかし、何も起こらない」: あなたは、マニフェストでのようなものをお使いAlarmReceiverの活動を宣言していることを確認しますマニフェストLogCatでメッセージがないかチェックしてください。 – CommonsWare
@ CommonsWare、私は、マニフェストファイルでAlarmReceiverのエントリを作成しました。これは、アラームが発生したときに呼び出すクラスです。 – a874