当前位置: 首页 > news >正文

关于安卓重启设备和重启应用进程

android 重启应用进程


//多种方式重启应用进程public class MainActivity
{//重启当前Applicationprivate void restartApplication(){final Intent intent = getPackageManager().getLaunchIntentForPackage(getPackageName());intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);startActivity(intent);}// 使用 AlarmManager 来帮助重启public static void restartByAlarm(Context context, Class<?> cls){Intent mStartActivity = new Intent(context, cls);int mPendingIntentId = 123456;PendingIntent pIntent = PendingIntent.getActivity(context, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + 500, pIntent);System.exit(0);}//使用 killProcesspublic static void restartByKillProcess(Context context, Class<?> cls){Intent intent = new Intent(context, cls);intent.addFlags(FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);android.os.Process.killProcess(android.os.Process.myPid());}//通过清栈触发应用重启。但不会重启 application ,与应用相关的静态变量也会更重启前一样。public static void restartByClearTop(Context context){Intent intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);context.startActivity(intent);}//利用系统重启api触发应用重启public static void restartBySystemApi(Context context){ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);manager.restartPackage(context.getPackageName());}//通过 Intent.makeRestartActivityTask 来触发应用重启,跟 restartByClearTop 类似。但不会重启 application ,与应用相关的静态变量也会更重启前一样。public static void restartByCompatApi(Context context, Class<?> cls){Intent intent = new Intent(context, cls);Intent restartIntent = Intent.makeRestartActivityTask(intent.getComponent());context.startActivity(restartIntent);System.exit(0);}/*** 5.1 版本以后可以借助 JobScheduler 来重启应用** @param context*/public static void restartByJobScheduler(Context context, Class<?> cls){if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){int delayTimeMin = 1000;int delayTimeMax = 2000;MyJobSchedulerService.setMainIntent(new Intent(context, cls));JobInfo.Builder jobInfoBuild = new JobInfo.Builder(0, new ComponentName(context, MyJobSchedulerService.class));jobInfoBuild.setMinimumLatency(delayTimeMin);jobInfoBuild.setOverrideDeadline(delayTimeMax);JobScheduler jobScheduler = (JobScheduler) context.getSystemService(JOB_SCHEDULER_SERVICE);jobScheduler.schedule(jobInfoBuild.build());System.exit(0);}}@TargetApi(Build.VERSION_CODES.LOLLIPOP)static class MyJobSchedulerService extends JobService{private static Intent mIntent;public static void setMainIntent(Intent intent){mIntent = intent;}@Overridepublic boolean onStartJob(JobParameters params){startActivity(mIntent);jobFinished(params, false);return false;}@Overridepublic boolean onStopJob(JobParameters params){return false;}}}

重启运行App的当前设备

Process process = Runtime.getRuntime().exec("reboot");process.waitfor();
http://www.lryc.cn/news/272275.html

相关文章:

  • Linux内核--进程管理(十三)O(1)调度算法
  • 【QT】发生的运行时错误汇总
  • 机器学习常用算法模型总结
  • 笔记中所得(已删减)
  • 在Django5中使用Websocket进行通信
  • 外汇天眼:CySEC与NAGA Markets Europe达成15万欧元的和解
  • Docker仓库搭建与镜像推送拉取
  • 最适合初学者的PHP集成环境!
  • 添加 Android App Links
  • 五、Spring AOP面向切面编程(基于注解方式实现和细节)
  • ES6 class详解
  • 嵌入式固件加密的几种方式
  • [C#]使用onnxruntime部署Detic检测2万1千种类别的物体
  • 关于Spring @Transactional事务传播机制详解
  • 力扣139.单词拆分
  • Docker 镜像命令总汇
  • 客户服务:助力企业抵御经济衰退的关键要素与策略
  • 第八周:AIPM面试准备
  • 阿里云2核2G3M服务器能放几个网站?有限制吗?
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C#)
  • 从零开始配置kali2023环境:镜像保存和导入
  • Transformer梳理与总结
  • php之 校验多个时间段是否重复
  • atoi函数的模拟实现
  • 编程笔记 html5cssjs 009 HTML链接
  • Vue实现导出Excel表格,提示“文件已损坏,无法打开”的解决方法
  • 分发糖果,Java经典算法编程实战。
  • 鸿蒙原生应用再添新丁!中国移动 入局鸿蒙
  • 一个人能不能快速搭建一套微服务环境
  • 计算机毕业设计------经贸车协小程序