@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {           if (keyCode == KeyEvent.KEYCODE_HOME) {
            NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
            Notification n = new Notification();
            n.icon = R.drawable.golf_ball;
            n.when = System.currentTimeMillis();
            n.flags = Notification.FLAG_AUTO_CANCEL;
            Context context = getApplicationContext();
            Intent intent = new Intent(context,getLocalActivityManager().getCurrentActivity().getClass());
            PendingIntent pi = PendingIntent.getActivity(context,0,intent,0);
            n.setLatestEventInfo(context, "GolfSystem", "GolfSystem正在后台运行", pi);
            nm.notify(1, n);
            
Intent it = new Intent(Intent.ACTION_MAIN);
it.addCategory(Intent.CATEGORY_HOME);
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(it);           }
           return super.onKeyDown(keyCode, event);    };

解决方案 »

  1.   

    Intent intent = new Intent(context,getLocalActivityManager().getCurrentActivity().getClass());
    走到这一步一直报空指针错,getLocalActivityManager().getCurrentActivity()这个的值是空,不知道为什么
      

  2.   

    Intent intent = new Intent(context,getLocalActivityManager().getCurrentActivity().getClass());
    intent改一下试试:
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    ComponentName cn = manager.getRunningTasks(1).get(0).topActivity
    intent.setComponent(cn)
      

  3.   

    改成你那样的之后报了这个错,
    06-01 11:48:53.404: E/AndroidRuntime(352): FATAL EXCEPTION: main
    06-01 11:48:53.404: E/AndroidRuntime(352): java.lang.SecurityException: Permission Denial: getTasks() from pid=352, uid=10048 requires android.permission.GET_TASKS
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.os.Parcel.readException(Parcel.java:1247)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.os.Parcel.readException(Parcel.java:1235)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.app.ActivityManagerProxy.getTasks(ActivityManagerNative.java:1645)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.app.ActivityManager.getRunningTasks(ActivityManager.java:298)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at com.cn.ui.BaseActivity.onKeyDown(BaseActivity.java:900)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.view.KeyEvent.dispatch(KeyEvent.java:1037)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.app.Activity.dispatchKeyEvent(Activity.java:2068)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1643)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2471)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2441)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1735)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.os.Handler.dispatchMessage(Handler.java:99)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.os.Looper.loop(Looper.java:123)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at android.app.ActivityThread.main(ActivityThread.java:4627)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at java.lang.reflect.Method.invokeNative(Native Method)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at java.lang.reflect.Method.invoke(Method.java:521)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    06-01 11:48:53.404: E/AndroidRuntime(352):  at dalvik.system.NativeStart.main(Native Method)
      

  4.   

    <uses-permission android:name="android.permission.GET_TASKS"/>