android 一键重启,Android实现app一键重启

实现安卓重启使用

RestartAPPTool.restartAPP(MyApplication.getAppContext());

工具类

import android.annotation.SuppressLint;

import android.app.AlarmManager;

import android.app.PendingIntent;

import android.content.Context;

import android.content.Intent;

import com.xinli.wenet.activitys.WelcomeActivity;

/**

* 此工具类用来重启APP,只是单纯的重启,不做任何处理。

*

*/

public class RestartAPPTool {

/**

* 重启整个APP

*

* @param context the 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);

intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);

context.startService(intent1);

/**杀死整个进程**/

android.os.Process.killProcess(android.os.Process.myPid());

System.exit(0);

}

/***重启整个APP @param context the context*/

public static void restartAPP(Context context){

/*  restartAPP(context,1);*/

Intent intent = new Intent(context, WelcomeActivity.class);

@SuppressLint("WrongConstant") PendingIntent restartIntent = PendingIntent.getActivity(context, 0, intent,

Intent.FLAG_ACTIVITY_NEW_TASK);

//退出程序

AlarmManager mgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);

assert mgr != null;

mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000,

restartIntent); // 1秒钟后重启应用

// 退出程序

android.os.Process.killProcess(android.os.Process.myPid());

System.exit(1);

}

}

service

import android.app.Service;

import android.content.Intent;

import android.os.Handler;

import android.os.IBinder;

/**

* 该服务只用来让APP重启,生命周期也仅仅是只是重启APP。重启完即自我杀死

*/

public class killSelfService extends Service {

/**关闭应用后多久重新启动*/

private static  long stopDelayed=1;

private Handler handler;

private String PackageName;

/**

* Instantiates a new Kill self service.

*/

public killSelfService() {

handler=new Handler();

}

@Override

public int onStartCommand(final Intent intent, int flags, int startId) {

stopDelayed=intent.getLongExtra("Delayed",1);

PackageName=intent.getStringExtra("PackageName");

handler.postDelayed(new Runnable() {

@Override

public void run() {

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(PackageName);

startActivity(LaunchIntent);

killSelfService.this.stopSelf();

}

},10);

return super.onStartCommand(intent, flags, startId);

}

@Override

public IBinder onBind(Intent intent) {

return null;

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值