Android app升级完成以后自动重启自身App
16lz
2021-01-23
第一步,注册升级App程序广播
第二步,实现当前注册的这个广播
public class UpdateReceiver extends BroadcastReceiver { private static final String TAG = UpdateReceiver.class.getSimpleName(); @Override public void onReceive(Context context, Intent intent) { String packageName = intent.getDataString(); if (intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED)) {//接收升级广播 Logger.e(TAG, "onReceive:升级了一个安装包,重新启动此程序"); if (packageName.equals("package:" + SystemUtil.getPackageName())) { RestartAPPTool.restartAPP(context);//升级完自身app,重启自身 } } else if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {//接收安装广播 Logger.e(TAG, "onReceive:安装了" + packageName); if (packageName.equals("package:" + SystemUtil.getPackageName())) { /*SystemUtil.reBootDevice();*/ } } else if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) { //接收卸载广播 Logger.e(TAG, "onReceive:卸载了" + packageName); } }}
附上app重启的代码:
/** * 重启整个APP * @param context */ public static void restartAPP(Context context){ Intent intent = context.getPackageManager() .getLaunchIntentForPackage(KursaalApp.context.getPackageName()); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); context.startActivity(intent); ActManager.getAppManager().finishAllActivity(); }
最后再加个开机启动权限
更多相关文章
- Android 改变屏幕亮度时需添加权限
- Android应用程序键盘(Keyboard)消息处理机制分析(2)
- Android APP OPS移除应用程序项目的修改方法
- Android自适应不同版本的程序退出方法
- android 一个应用程序的启动
- 当程序运行时强制屏幕一直活动不被关掉