Ah good call - however still getting that error. Also forced true and false for the onMenuItemSelected method as well.
On Tue, Sep 27, 2011 at 12:02 AM, joebowbeer <joe.bowb...@gmail.com> wrote: > 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 <arturothebur...@gmail.com> > 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 android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en