0

我的设计要求我在 second_activity 运行后终止 get_configuration 活动 (Activity1)。但是,当我从 second_activity (Activity2) 中点击 BACK 按钮时,我收到以下错误:

“E/ActivityThread(2156): Activity com.test.Test 泄露了最初在此处注册的 IntentReceiver。您是否错过了对 unregisterReceiver() 的调用?”

我是 Android 新手,我所有的研究都提到了取消注册意图接收器 - 但我没有使用意图接收器,只是将包传递给 second_activity 的意图。

如何从被破坏的活动中注销我的意图?这是我正在使用的代码:-

活动1类:

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

}

活动2类:

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 中注册意向接收者?

如果您需要在 onResume 中注册 IntentReceiver 并在 onPause 中取消注册。

仅当您正在收听广播时才需要注册 IntentReceiver,而无需注册 IntentReceiver 即可从 activity1 启动 activity2。此外,您无需销毁从 Activity1 传递到 Activity2 的意图,因为它们仅在 Activity 的生命周期中保留。

于 2012-06-19T18:54:52.880 回答