アンドロイド:履歴スタックからクリア古いアクティビティインスタンス

wawanopoulos:

私は、次のような単純なシナリオを持っています:

  • 一つの活動はと呼ばれるListCarsActivity.kt車のリストが表示されます。ユーザーがFloatingActionButtonをクリックすると、それが呼ばれる別のアクティビティ開きAddCarActivity.ktを
  • 上のユーザーがクリックすると追加車のボタンは、私は追加の車が表示されるようになりました初期活性のListCarsActivity.ktに行く新しい意図を開始します。

問題は:今から、私は戻るボタンをクリックすると、ListCarsActivityを2回表示されます。

履歴スタックからListCarsActivityの古いエントリを削除するには?

ここでは、画像の説明を入力します。

Rakshit Nawani:

お電話AddCarActivity.ktあなたの内側に以下のような活動をListCarsActivity.kt

val intent = Intent(mContext, AddCarActivity.class);
startActivityForResult(intent, 1); //Use any request code

今startActivityForResultが何上記のコードのために、それはいくつかの他の活動またはソースからのデータのバックを受けることが意図されていることである(ETCカメラ、連絡先、など)

これですべての作業は、自分の中で行われているときAddCarActivity.ktあなたはすべて以下のことができます意図結果を取り戻すために

                Intent intent = getIntent();
                intent.putExtra("key", data); // if you wanted to get data 
                setResult(RESULT_OK, intent);
                finish();

そして、あなたの内側にListCarsActivity.ktあなたが追加する必要がonActivityResultからデータを取得しますどのAddCarActivity.kt

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

        if (resultCode == RESULT_OK) {
            if (requestCode == 1) { //Your request code here
                Object obj = data.getParcelableExtra("key");
                 //Do as per your needs

            }
        }

    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

あなたが最初のアクティビティで新しく追加されたデータのバックを返すしたい場合これにより、サードパーティのLIBSの使用せずに取り出すことができます。

それを試してみて、それはあなたのために働いていたなら、私に知らせてください。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=7921&siteId=1
おすすめ