In onCreateOptionsMenu, try returning true instead of calling super and see if that is a workaround.
On Sep 24, 5:05 pm, Glorious Red Leader <[email protected]> wrote: > I have not seen this error on the Droid Bionic, Motorola Photon 4g, > HTC Evo 3d, or the Thunderbolt - only on the Sprint Samsung Galaxy sII > Epic Touch 4G (android 2.3.4). > > This sample application will throw a "leaked IntentReceiver" error by > following these steps: > > - Somehow aquire a Sprint Samsung Galaxy s2 Epic Touch 4g (the one > with the 4.52" screen) > - Launch application > - Press "Launch Activity Two" button > - Open menu, then open the sub menu (Food) - NOTE: You don't need to > click on an option, simply viewing the submenu is sufficient > - Press the phone's back button to close the submenu and menu > - Press the phone's back button again to return to ActivityOne - > eclipse will print the error below. > > If you simply open the menu and select a single option item (not a > submenu) then press the back button you will not see the error. > > So my question is: Where is this registered IntentReceiver coming > from, and how can I unregister it? > > Thank you for your time. > > # AndroidManifest.xml (Target version is 2.3.3) > > <?xml version="1.0" encoding="utf-8"?> > <manifest xmlns:android="http://schemas.android.com/apk/res/android" > package="com.test" android:versionCode="1" android:versionName="1.0"> > <uses-sdk android:minSdkVersion="10" /> > <application android:icon="@drawable/icon" android:label="@string/ > app_name"> > <activity android:name=".ActivityOne" android:label="@string/ > app_name"> > <intent-filter> > <action > android:name="android.intent.action.MAIN" /> > <category > android:name="android.intent.category.LAUNCHER" /> > </intent-filter> > </activity> > <activity android:name=".ActivityTwo"></activity> > </application> > </manifest> > > # one.xml (layout for ActivityOne) > > <?xml version="1.0" encoding="utf-8"?> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ > android" > android:orientation="vertical" android:layout_width="fill_parent" > android:layout_height="fill_parent"> > <TextView android:layout_width="fill_parent" > android:layout_height="wrap_content" android:text="Hello this > is > activity one" /> > <Button android:layout_width="wrap_content" > android:layout_height="wrap_content" android:id="@+id/ > launch_activity_two" > android:text="Launch Activity Two" /> > </LinearLayout> > > # two.xml (layout for ActivityTwo) > > <?xml version="1.0" encoding="utf-8"?> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ > android" > android:orientation="vertical" android:layout_width="fill_parent" > android:layout_height="fill_parent"> > <TextView android:layout_width="fill_parent" > android:layout_height="wrap_content" > android:text="Hello this is activity Two. The only way to > leave is > by pressing the back button on your phone. If you open a submenu > (press menu button then select a submenu) - then press the back button > on your phone there will be an exception thrown." /> > </LinearLayout> > > # menu/menu.xml > > <?xml version="1.0" encoding="utf-8"?> > <menu xmlns:android="http://schemas.android.com/apk/res/android"> > <item android:id="@+id/food" android:title="Food"> > <menu> > <item android:id="@+id/food_is_good" > android:title="Food is good" / > > <item android:id="@+id/food_is_delicious" > android:title="Food is > delicious" /> > <item android:id="@+id/food_is_bad" > android:title="Food is bad" /> > </menu> > </item> > <item android:id="@+id/doggies_are_cuddly" android:title="Doggies are > cuddly" /> > </menu> > > # ActivityOne > > public class ActivityOne extends Activity { > /** Called when the activity is first created. */ > @Override > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > setContentView(R.layout.one); > > // launches activity two > Button button = > (Button)findViewById(R.id.launch_activity_two); > button.setOnClickListener(new View.OnClickListener() { > @Override > public void onClick(View v) { > Intent intent = new > Intent(getApplicationContext(), > ActivityTwo.class); > startActivity(intent); > } > }); > > Log.v("Samsung Galaxy sII", "Created Activity One"); > } > > } > > # ActivityTwo > > public class ActivityTwo extends Activity { > > /** Called when the activity is first created. */ > @Override > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > setContentView(R.layout.two); > Log.v("Samsung Galaxy sII", "Created Activity Two"); > } > > @Override > public boolean onCreateOptionsMenu(Menu menu) { > Log.v("Samsung Galaxy sII", "Creating options menu"); > MenuInflater inflater = getMenuInflater(); > inflater.inflate(R.menu.menu, menu); > return super.onCreateOptionsMenu(menu); > } > > @Override > public boolean onOptionsItemSelected(MenuItem item) { > // Handle item selection > switch (item.getItemId()) { > case R.id.food_is_bad: > Log.v("Samsung Galaxy sII", "Food is bad"); > return true; > case R.id.food_is_good: > Log.v("Samsung Galaxy sII", "Food is good"); > return true; > case R.id.food_is_delicious: > Log.v("Samsung Galaxy sII", "Food is delicious"); > return true; > case R.id.doggies_are_cuddly: > Log.v("Samsung Galaxy sII", "Doggies are cuddly"); > return true; > default: > return super.onOptionsItemSelected(item); > } > } > > } > > 09-23 00:46:11.791: VERBOSE/Samsung Galaxy sII(28668): Created > Activity Two > 09-23 00:46:12.705: VERBOSE/Samsung Galaxy sII(28668): Creating > options menu > 09-23 00:46:19.120: ERROR/ActivityThread(28668): Activity > com.test.ActivityTwo has leaked IntentReceiver > com.android.internal.view.menu.MenuDialogHelper$1@4052c470 that was > originally registered here. Are you missing a call to > unregisterReceiver()? > 09-23 00:46:19.120: ERROR/ActivityThread(28668): > android.app.IntentReceiverLeaked: Activity com.test.ActivityTwo has > leaked IntentReceiver com.android.internal.view.menu.MenuDialogHelper > $1@4052c470 that was originally registered here. Are you missing a > call to unregisterReceiver()? > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:756) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:551) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:858) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.app.ContextImpl.registerReceiver(ContextImpl.java:845) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.app.ContextImpl.registerReceiver(ContextImpl.java:839) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.content.ContextWrapper.registerReceiver(ContextWrapper.java: > 318) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > com.android.internal.view.menu.MenuDialogHelper.show(MenuDialogHelper.java: > 97) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > com.android.internal.policy.impl.PhoneWindow.onSubMenuSelected(PhoneWindow. > java: > 808) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.ja > va: > 867) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java: > 532) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemVi > ew.java: > 122) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.view.View$PerformClick.run(View.java:9238) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.os.Handler.handleCallback(Handler.java:587) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.os.Handler.dispatchMessage(Handler.java:92) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.os.Looper.loop(Looper.java:130) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > android.app.ActivityThread.main(ActivityThread.java:3691) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > java.lang.reflect.Method.invokeNative(Native Method) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > java.lang.reflect.Method.invoke(Method.java:507) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > com.android.internal.os.ZygoteInit > $MethodAndArgsCaller.run(ZygoteInit.java:907) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) > 09-23 00:46:19.120: ERROR/ActivityThread(28668): at > dalvik.system.NativeStart.main(Native Method) -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

