通知の意図に関していくつか問題がありました。2 つのアクティビティ (A & B) があります。アクティビティ A は、アプリケーションのメイン アクティビティです。ユーザーが通過する最初のアクティビティ。アクティビティ B は、ユーザーがアクティビティ A のボタンをクリックして入力したときです。
通知をクリックすると、アクティビティ B に移動します。その後、アクティビティ A onBackPressed に戻ります。しかし、アプリケーションを閉じて、マルチタスク オプションを使用して再度開くと、アクティビティ B でアプリケーションが再開されます。アプリケーションを閉じた後ではなく、アクティビティ A で開始するようにしたかったのです。
順序は
アクティビティ A --> アクティビティ B。
通知onClick -> アクティビティ B ( onBackPressed ) -> アクティビティ A --> 閉じる。
アプリを再度開く / マルチタスク機能で開く --> アクティビティ A
私の質問を適切に理解するために提供できる他の情報があれば教えてください。
GCM_Intent.class
Notification note = new Notification(icon, msgTopic ,System.currentTimeMillis());
Intent i=new Intent(this, Activity_B.class);
i.putExtra("topicId", topicId);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|
Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pi=PendingIntent.getActivity(this, CommunitiesappConstant.NOTIFICATION_ID, i, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_ONE_SHOT);
note.setLatestEventInfo(this, topicName ,msgInfo+message, pi);
note.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;
note.ledARGB |= 0xff0000ff;
note.ledOffMS |= 1000;
note.ledOnMS |= 300;
mgr.notify(CommunitiesappConstant.NOTIFICATION_ID, note);
活動Bクラス
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
Bundle bundle = getIntent().getExtras();
topicId = bundle.getString("topicId");
}
@Override
public void onBackPressed() {
super.onBackPressed();
Log.e(TAG, "onBackPressed");
Intent i = new Intent(Activity_B.this, Activity_A.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
}