アラームを使用して、特定の時間にコードを実行したいと考えています。マニフェストに登録されたブロードキャストレシーバーでアラームを正常に実装しましたが、私が理解しているように、このメソッドはブロードキャストレシーバーに別のクラスを使用します。
このメソッドを使用して別のアクティビティを開始できますが、それを使用してメイン アクティビティでメソッドを実行することはできませんか?
(ブロードキャスト レシーバーから実行中のアクティビティを通知するにはどうすればよいですか? )
そのため、上記の回答で説明したように、ブロードキャストレシーバーをメインアクティビティに登録しようとしています。
private BroadcastReceiver receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "hello", Toast.LENGTH_SHORT).show();
uploadDB();
}
};
public void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction(null);
this.registerReceiver(this.receiver, filter);
}
public void onPause() {
super.onPause();
this.unregisterReceiver(this.receiver);
}
ただし、これをアラーム マネージャーで動作させることができませんでした。アラーム インテントをブロードキャスト レシーバーにリンクする方法がわかりません。アラーム マネージャ ブロードキャスト レシーバをアクティビティに動的に登録する例を教えてください。または、これを行う方法を説明してください。