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

Reply via email to