アプリの実行中にステータスバーに通知を表示する必要がありますが、選択した場合にアクティビティにコールバックしたくありません。これは、アプリが実行されていることをユーザーに知らせることを目的としています。基本的には、ホームボタンを押して最小化した場合のリマインダーです。
アイデア?
アプリの実行中にステータスバーに通知を表示する必要がありますが、選択した場合にアクティビティにコールバックしたくありません。これは、アプリが実行されていることをユーザーに知らせることを目的としています。基本的には、ホームボタンを押して最小化した場合のリマインダーです。
アイデア?
私は同じ望ましい行動をしています。私の解決策は次のとおりです。
Intent intent = new Intent(this, YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
mPendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);
また、ユーザーが選択したときに通知が自動的に消えるようにするため
notification.flags |= Notification.FLAG_AUTO_CANCEL;
インテントインテント=newIntent(this、YourActivity.class);
あるいは単に
インテントインテント=newIntent();
基本的にはハックですが、私はこの問題の解決策を思いつくことになりました。アクティビティクラスを指すようにインテントを設定する代わりに、Dialogクラスを使用しています。
this.notificationIntent = new Intent(this, SomeDialog.class);
これで、ユーザーがlogcatを介して通知を選択すると、開始アクティビティがログに記録されていることがわかりますが、何も起こらないようです。
これにより、アプリの実行中に留まる通知を投稿し、ユーザーが終了したときに通知を閉じることができます。