これは他のフォーラムで何百万回も質問されていることは知っていますが、まだ完璧な答えは得られていません. これは私の要件です:
アクティビティがバクグラウンドになると、タイマーが開始され、10 秒後に通知が表示されます。ユーザーが 10 秒後に通知をクリックしないと、通知が変更されます。ユーザーが最初の通知をクリックすると、最後に表示された画面が表示されます。つまり、アクティビティが前面に表示されます。これは、次の方法で実現されます。
Intent notificationIntent = new Intent(TimedAlert.this, FirstActivity.class);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
しかし、アクティビティがフォアグラウンドになった直後にタイマーを停止したい。つまり、onResume ()
私は与えますtimer.cancel()
が、これはうまくいかないようです。私も試しonNewIntent()
ましたが、アプリが2番目のアクティビティからバックグラウンドになったときに最初のアクティビティにいるときにのみ機能します。フォアグラウンドに来るとonNewIntent()
、2 番目のアクティビティに単一のトップを指定したにもかかわらず、メソッドは呼び出されません。
どうすればこの動作を実現できますか?