1

[以下の更新]

複数のアクティビティを含むアプリケーションがあります。通知アイテムのクリックから開始されたアクティビティの処理に問題があります。

以下はアプリの構造です。

  1. 通常の流れ/作業の場合、ユーザーがアプリを起動するとActivity Aが起動Activityで起動します。ユーザーはアクティビティ A からアクティビティ B に移動できます (つまり、A -> B)
  2. B の戻るボタンをクリックすると、アクティビティ A が表示されます。

ただし、問題は、通知のクリックからアクティビティを開始することです。以下の流れです。

  1. ユーザーが通知をクリックする
  2. 活動B開始
  3. アクティビティ B の [戻る] ボタンをクリックしても、アクティビティ A は開始されませんが (これは理解できます)、アクティビティ B も強制終了されません (アクティビティ B をバックグラウンドに移動します)。私が望むのは、通知のクリックによってアクティビティ B が開始された場合、B を押すと、ユーザーがアクティビティ A に移動するか、アクティビティ B を強制終了する必要があるということです。

この点に関する指針をいただければ幸いです。

[アップデート]:

奇妙ですが、これが今起こっていることです。1. アクティビティ B の onBackPressed イベントをオーバーライドします。 2. このメソッドでは、finish() が呼び出されます。

アプリケーションが既に実行されていて、通知をクリックするとアクティビティ B が表示され、バック プレスでアクティビティ B が終了する場合。ただし、アプリケーションが実行されていない場合、通知のクリックでアクティビティ B が開始され、バック プレスで、バックプレス イベントと finish() メソッドが呼び出されますが、アクティビティは終了せず、バックグラウンドになります。これは本当に奇妙です。または、いくつかの詳細が不足している可能性があります:((

ありがとうシュリー

4

3 に答える 3

0

この流れに従ってください:-

1- アクティビティ A の oncreate() で isLauchFrom を確認します。

2- isLaunchFrom Notification の場合、startActivityFor Result を使用してアクティビティ B に移動します。

これがお役に立てば幸いです。混乱があればコメントを送ってください。

于 2014-01-03T08:35:45.890 に答える
-1
@Override
public void onBackPressed() {
        Intent returnIntent = new Intent(B.this,A.class);
        B.this.finish();
        startActivity(returnIntent);

}

このようにしてみてください

于 2014-01-03T07:52:20.397 に答える