3

私のアクティビティのホームページにボタンがあるとします。

このボタンを押すと、アクティビティ A に移動します

Activity A では、Intents と startActivityForResult() を使用して自動的に Activity B に移動します。

Activity B では、Intents と startActivityForResul(); を使用して自動的に Activity C に移動します。

アクティビティ B では、バーコード スキャナー アクティビティに移動して結果を取得するインテントを自動的に開始します。

私の問題は、ホームページに戻るためにボタンを押すと、ホームページに戻るために4回押す必要があることです

一度ホームページに戻りたい場合、そのような一連の活動をどのように終わらせればよいですか?

4

4 に答える 4

4

プログラムのどこでも onBackPressed() を使用/オーバーライドしないでください

アクティビティAやBなどの親アクティビティに次のメソッドを追加するだけです

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
}

を使用して onClick メソッドでアクティビティを開始します

    startActivityForResult(intentName, 0);

子アクティビティでは、 onStop() メソッドを使用/オーバーライドします

    @Override
protected void onStop()
{
    super.onStop();

}
于 2012-07-14T07:36:15.670 に答える
2

次のメソッドをオーバーライドして、ホームページに戻ることができます

    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
    }

そのメソッド内で、次のタグを使用してホーム アクティビティのインテントを作成します

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

文書によると

設定されていて、起動されているアクティビティが現在のタスクで既に実行されている場合、そのアクティビティの新しいインスタンスを起動する代わりに、その上にある他のすべてのアクティビティが閉じられ、このインテントがに配信されます (現在上)新しいインテントとしての古いアクティビティ。

しかし、私が疑問に思っているのは、以前の活動に戻らないので、なぜ結果のために活動を開始しているのかということです。

于 2012-07-14T04:22:28.137 に答える
0
finishActivity(requestCode)

最後のアクティビティで上記のコードを使用して、戻るボタンを押した後に開始されたすべてのアクティビティを閉じるようにします

requestcode は、アクティビティ B を開始するために最初のアクティビティで使用したコードです。

于 2012-07-14T04:27:45.250 に答える
0
    you may try this
    Intent intent = new Intent(currentActivity.this, otherActivity.class); // instead of otherActivity use your  activity
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("EXIT", true);
    startActivity(intent);

And, in your other onCreate() use below code -

if (getIntent().getBooleanExtra("EXIT", false)) {
    finish();
}
于 2012-07-14T04:31:19.327 に答える