简体   繁体   中英

Disabling home button in android while running an async task

I need to make disable or inactive the home button of my android phone while running the async task created by me. Please see the error logs i am getting while interrupting the async task.

01-01 01:09:39.375: ERROR/WindowManager(1415): Activity  com.android.settings.ThemePreview has leaked window  com.android.internal.policy.impl.PhoneWindow$DecorView@418cb518 that was originally added here
01-01 01:09:39.375: ERROR/WindowManager(1415): android.view.WindowLeaked: Activity com.android.settings.ThemePreview has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@418cb518 that was originally added here
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.view.ViewRootImpl.<init>(ViewRootImpl.java:350)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:245)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:193)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:118)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.view.Window$LocalWindowManager.addView(Window.java:537)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.app.Dialog.show(Dialog.java:279)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at com.android.settings.ThemePreview$ApplyTheme.onPreExecute(ThemePreview.java:357)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:561)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.os.AsyncTask.execute(AsyncTask.java:511)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at com.android.settings.ThemePreview.onOptionsItemSelected(ThemePreview.java:239)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.app.Activity.onMenuItemSelected(Activity.java:2502)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:961)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:490)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:103)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.view.View.performClick(View.java:3480)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.view.View$PerformClick.run(View.java:13993)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.os.Handler.handleCallback(Handler.java:605)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.os.Looper.loop(Looper.java:137)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at android.app.ActivityThread.main(ActivityThread.java:4368)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at java.lang.reflect.Method.invokeNative(Native Method)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at java.lang.reflect.Method.invoke(Method.java:511)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-01 01:09:39.375: ERROR/WindowManager(1415):     at dalvik.system.NativeStart.main(Native Method)

Home button cannot be disabled. It is part of the security principle of android that the user should be able to minimise app and go to home screen anytime. It is also essential as Android ia multi-tasking. You need to change your logic to suit that. Personally, I wouldn't trust an app. which doesnt let me go to the home screen and start an app of my choice.

So we can't disable Home button.
In Android SDK whenever we press HOME key, app minimises and launches Home screen.
So we can't have any event related to Home Key.

use this override method below in your activity:

@Override
public void onAttachedToWindow()
{  
       this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);     
       super.onAttachedToWindow();  
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM