0

私の設計では、second_activityが実行されたら、get_configurationアクティビティ(Activity1)を強制終了する必要があります。ただし、second_activity(Activity2)から[戻る]ボタンを押すと、次のエラーが発生します。

「E/ActivityThread(2156):アクティビティcom.test.Testが、最初にここに登録されたIntentReceiverをリークしました。unregisterReceiver()の呼び出しがありませんか?」

私はAndroidを初めて使用します。すべての調査で、インテントレシーバーの登録解除について言及していますが、インテントレシーバーは使用しておらず、バンドルをsecond_activityに渡すことだけを目的としています。

破壊されたアクティビティからインテントの登録を解除するにはどうすればよいですか?これが私が使用しているコードです:-

Activity1クラス:

SetupActivity() {
   ...
     Intent intent = new Intent(getApplicationContext(), Activity2.class);
     intent.putExtra("width", intWidth);
     intent.putExtra("height", intHeight);
     finish(); // kill this activity
     startActivity(intent); // start Activity2

}

Activity2クラス:

OnCreate() {
 Bundle extras = getIntent().getExtras();
 if (extras != null) {
     width = extras.getInt("width");
     height = extras.getInt("height");
  }
}
4

2 に答える 2

1

Javaクラスがあります。名前はcom.test.Test。そこで、あなたは電話をかけましたが、それが破壊される前にregisterReceiver()電話をかけられませんでした。unregisterReceiver()

于 2012-06-19T20:02:56.303 に答える
0

アクティビティ2にインテントレシーバーを登録していますか?

IntentReceiverをonResumeに登録し、onPauseで登録を解除する必要がある場合。

ブロードキャストをリッスンしている場合にのみ、intentReceiverを登録する必要があります。これは、activity1からactivity2を開始するためにIntentReceiverを登録する必要がありません。また、Activity1からActivity2に渡されたインテントは、アクティビティのライフサイクル中にのみ残るため、破棄する必要はありません。

于 2012-06-19T18:54:52.880 に答える