public void restartApp() {
//启动页
Intent intent = new Intent(OuYuBaseApplication.getBaseApplication(), SplashActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
OuYuBaseApplication.getBaseApplication().startActivity(intent);
android.os.Process.killProcess(android.os.Process.myPid());
}
在低版本中可以使用以下方法重启
/**
* @author chenli
* @create 2019/10/12
* @Describe
*/
public class killSelfService extends Service {
/**关闭应用后多久重新启动*/
private static long stopDelayed=50;
private Handler handler;
private String PackageName;
public killSelfService() {
handler=new Handler();
}
@Override
public int onStartCommand(final Intent intent, int flags, int startId) {
stopDelayed=intent.getLongExtra("Delayed",50);
PackageName=intent.getStringExtra("PackageName");
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(PackageName);
startActivity(LaunchIntent);
killSelfService.this.stopSelf();
}
},stopDelayed);
return super.onStartCommand(intent, flags, startId);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
/**
* 此工具类用来重启APP,只是单纯的重启,不做任何处理。
* Created by 13itch on 2016/8/5.
*/
public class RestartAPPTool {
/**
* 重启整个APP
* @param context
* @param Delayed 延迟多少毫秒
*/
public static void restartAPP(Context context, long Delayed){
/**开启一个新的服务,用来重启本APP*/
Intent intent1=new Intent(context, killSelfService.class);
intent1.putExtra("PackageName",context.getPackageName());
intent1.putExtra("Delayed",Delayed);
context.startService(intent1);
Observable.timer(Delayed/2, TimeUnit.MILLISECONDS).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
/**杀死整个进程**/
android.os.Process.killProcess(android.os.Process.myPid());
}
});
}
/***重启整个APP*/
public static void restartAPP(Context context){
restartAPP(context,2000);
}
}