私は、予定されているオブジェクトの配列から次のリマインダが通知されたときに通知するリマインダーアプリを持っています。BOOT_COMPLETEを受け取った後にMainActivityにアクセスする
私は起動時に再度通知を設定しようとしています。
私は起動レシーバをすべてマニフェストに設定していますが、アプリケーションがまだ開かれていなければ、電話が起動したらMainActivityの情報にアクセスするにはどうすればよいですか?
私はこれを使用することを期待していた -
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("RegularReminders","onReceive");
new MainActivity().setNotifications();
}
}
しかし、それはMainActivityでメソッドを実行しようとしたら、それは最高のエミュレータブーツとして、その通知内からアプリのクラッシュをヌルエラーを返し、私はこれを参照してくださいlogcatに -
java.lang.RuntimeException: Unable to start receiver com.androidandyuk.regularreminders.BootReceiver: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
これはラインを指す -
if (reminders.size() >= 0) {
私はSharedPrefsに通知メッセージを保存し、それを受信側で呼び戻すことができたのだろうかと思ったが、nullのオブジェクト参照にもエラーがある。
追加情報を追加して別のブロードキャストを送信しようとしましたが、MainActivityで設定した受信者は、アプリケーションが実行されていないためリッスンしていないと思いますか?
私はGoogleがMalwareから私たちを保護していると知っていますが、これは本の後ではあまり気にしませんが、何らかの方法でこれがあるので再起動後に通知を設定できますか?
ありがとうございました。
あなたがdownvoteに行くなら、少なくとも私が学ぶことができる理由を私に教えてください。私はこの答えを探して数時間を費やしましたが、私はここで見つけたいくつかの異なるものを試しましたが、喜びはないので、私は尋ねます。私が必要とするすべての情報をレイアウトしたと思うので、間違ったことを教えてください。ありがとう。 – AndyCr15