Ok, thanks for this info... I'll try this to reproduce the issue. I have 2.2 installed on my device and have never come across this, but now that I know what is going on I may be able to reproduce this.
So, in short, there is nothing that can be done to help with this? Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/magouyaware On Sat, Mar 19, 2011 at 10:21 AM, Kevin TeslaCoil Software < ke...@teslacoilsw.com> wrote: > Android gives priority to the default Home application, to prevent it > from being removed from memory. Launchers require lots of memory. > Without this protection there is a good chance the actual launcher > will be killed and need to reload, which is slow and the user sees the > widgets redraw on the screen. Also it might lose any cache it had > which could make the app drawer load slower. > > In practice, I've found that this method worked okay on 2.1 for > whatever reason. But with Android 2.2+ it doesn't. I imagine you'll be > able to reproduce the problem if you use a 2.2 device, set AppSwipe! > as the default Home, reboot (rearranges things in memory a bit), then > start using lots of memory-heavy apps like the browser, angry birds, > etc, then when you press the Home button after some time away look for > widgets redrawing. > > I believe 2.3 neuters "System Persistent" as well. > > Good luck! > -Kevin > > > I have an task switching app on the Android Market called AppSwipe! > > and one of the most commonly requested features is the ability to > > launch my app by long-pressing the home button. Since this is not > > possible, I created a way to launch AppSwipe! by double-pressing the > > home key. > > > > This feature has been out for over a year and my users love it. > > However, I recently received an email from one user who was reporting > > some strange behavior when using this functionality... essentially, > > the home app is getting killed and taking a long time to restart. > > When this occurs there are some other UI issues as well (such as > > folders launching with transparent backgrounds and such). It only > > happens on very specific devices and I can't reproduce the problem. > > > > Here is the general process that I am using to implement the double- > > press of the home button: > > > > 1) I created an activity that declares itself as a home replacement > > app (see XML below) > > > > 2) I have a user-modifiable setting that allows the user to specify > > which home app to launch from the home button. > > > > 3) When the home button is pressed, my "home replacement" activity has > > the following logic: > > > > a) The first time the home button is pressed a timer is > > created and started in onResume() > > > > b) If the timer finishes, then the user-specified home app is > > launched > > > > c) If home is pressed again and the timer is still running, > > then I cancel the timer and launch my app > > > > Here is the XML that declares my "home replacement" app: > > > > <activity > > android:theme="@android:style/Theme.Translucent.NoTitleBar" > > android:name=".HomeLauncherActivity" > > android:label="@string/app_home_launcher_label" > > android:launchMode="singleInstance" > > android:stateNotNeeded="true" > > > > <intent-filter> > > <action android:name="android.intent.action.MAIN" /> > > <category android:name="android.intent.category.HOME"/> > > <category android:name="android.intent.category.DEFAULT" > /> > > </intent-filter> > > </activity> > > > > Here is the onResume() method that runs the timer: > > > > @Override > > public void onResume() > > { > > super.onResume(); > > > > if (m_prefMgr == null) > > m_prefMgr = > PreferenceManager.getDefaultSharedPreferences(this); > > > > if (m_pkgMgr == null) > > m_pkgMgr = getPackageManager(); > > > > //First Home Button Press > > if (m_timer == null) > > { > > int launchThreshold = > > > m_prefMgr.getInt(getString(R.string.pref_button_launch_home_click_threshold > _key), > > > PrefSettings.DEFAULT_DOUBLE_PRESS_HOME_THRESHOLD); > > > > m_timer = new AppSwipeHomeLaunchTimer(launchThreshold, > > launchThreshold); > > m_timer.start(); > > } > > else //Second Home Button Press > > { > > m_timer.cancel(); > > m_timer = null; > > > > boolean swapHomePress = > > > m_prefMgr.getBoolean(getString(R.string.pref_button_launch_swap_buttons_key > ), > > > PrefSettings.DEFAULT_SWAP_HOME_BUTTON_BEHAVIOR); > > if (swapHomePress) > > launchHomeApp(); > > else > > launchAppSwipe(); > > } > > > > } > > > > Here is the code for my launchHomeApp() method: > > > > public void launchHomeApp() > > { > > try > > { > > String pkgName = > > > m_prefMgr.getString(getString(R.string.pref_button_launch_default_home_app_ > pkg_key), > > ""); > > String className = > > > m_prefMgr.getString(getString(R.string.pref_button_launch_default_home_app_ > class_key), > > ""); > > > > Intent launchIntent = new Intent(Intent.ACTION_MAIN); > > launchIntent.addCategory(Intent.CATEGORY_HOME); > > launchIntent.setComponent(new ComponentName(pkgName, > className)); > > launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); > > > > startActivity(launchIntent); > > finish(); > > } > > catch(ActivityNotFoundException e) > > { > > launchAppSettings(R.string.error_select_home_app); > > } > > > > } > > > > Any ideas on what can be done? > > > > One interesting thing to note is that the user who reported this > > problem said that if they use ADW.Launcher as the home app and turn on > > the "System Persistent" option (which is supposed to prevent the > > Android OS from killing it) then the problem goes away. > > -- > 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