当前位置: 代码迷 >> Android >> android 重启成功,关机不成功解决方法
  详细解决方案

android 重启成功,关机不成功解决方法

热度:543   发布时间:2016-05-01 22:29:10.0
android 重启成功,关机不成功
大家好,RT。代码实现了android的reboot 功能,但是发现 shutdown 后还是保留在最后一个画面,也就是没正常关机。请大家帮忙看看,谢谢。

Java code
reboot:Intent i= new Intent( Intent.ACTION_REBOOT);sendBroadcast( i );shutdown:Intent i= new Intent( Intent.ACTION_SHUTDOWN);sendBroadcast( i );AndroidManifest.xml:.....android: sharedUserId="android.uid.system">....<uses-permission android: name="android.permission.RECEIVE_BOOT_COMPLETED">BootReceiver.java:public class BootReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context,Intent intent){        Intent i=new Intent(Intent.ACTION_RUN);        i.setClass(context, UpdateProgress.class);                i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(i);    }    }




------解决方案--------------------
Java code
//重启代码位于frameworks\base\core\jni\android_os_Power.cpp,里面有static void android_os_Power_shutdown(JNIEnv *env, jobject clazz){/*关机*/    sync();#ifdef HAVE_ANDROID_OS    reboot(RB_POWER_OFF);#endif}static void android_os_Power_reboot(JNIEnv *env, jobject clazz, jstring reason){/*重启*/    sync();#ifdef HAVE_ANDROID_OS    if (reason == NULL) {        reboot(RB_AUTOBOOT);    } else {        const char *chars = env->GetStringUTFChars(reason, NULL);        __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,                 LINUX_REBOOT_CMD_RESTART2, (char*) chars);        env->ReleaseStringUTFChars(reason, chars);  // In case it fails.    }    jniThrowIOException(env, errno);#endif}
------解决方案--------------------

------解决方案--------------------

------解决方案--------------------
您好!可以贴下完整的关机与重启的代码吗?我想学习一下啊!
谢谢啦!
  相关解决方案