Android关闭进程后重启方法

由于应用需要关闭进程后重启,并非在原内存中重启。网上的方法全部是在内存中重启。只能在原进程中重启。

首先:新建一个广播接收器。

AndroidManifest.xml文件中注册一个

 
            
                
                
            
        

然后在需要重启的地方,关闭进程前先延时发送一个广播在广播中重启。  

RestartAppReceiver.java

public class RestartAppReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
            if(intent.getAction().equals("restart.app")){
                Log.e("TAG","接受到广播");
                Log.e("TAG", Process.myPid()+"");
              Intent i = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
                i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                context.startActivity(i);
            }
    }
}

在需要重启的地方发送广播:

//关闭App并且重启
Log.e("DeviceInfoAty",Process.myPid()+"");
sendBroadcast(new Intent("restart.app"));
new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        Process.killProcess(Process.myPid());
    }
},3000);

你可能感兴趣的:(Android)