android 服务 重启,Android APP重启的几种方法

android 服务 重启,Android APP重启的几种方法项目开发过程中需要实现重启App的功能,常用的可行方案有:1.使用FLAG_ACTIVITY_CLEAR_TOP:newHandler().postDelayed(newRunnable(){@Overridepublicvoidrun(){IntentLaunchIntent=getPackageManager().getLaunchIntentForPackage(ge…

android 服务 重启,Android APP重启的几种方法

项目开发过程中需要实现重启App的功能,常用的可行方案有:

1. 使用 FLAG_ACTIVITY_CLEAR_TOP :

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(getApplication().getPackageName());

LaunchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(LaunchIntent);

}

}, 100);// 1秒钟后重启应用

2. 使用 AlarmManager :

Intent intent = getPackageManager()

.getLaunchIntentForPackage(getApplication().getPackageName());

PendingIntent restartIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);

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

mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent); // 1秒钟后重启应用

System.exit(0);

3.使用Service

开启一个Service,然后自己杀死APP的进程,最后在Service里通过包名来启动一个APP并销毁Service。

(1)RestartAPPTool.java

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);

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

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

}

/***重启整个APP*/

public static void restartAPP(Context context){

restartAPP(context,2000);

}

}

(2)killSelfService.java

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;

}

}

(3)需要在AndroidManifest.xml中注册Service

(4)在需要的地方调用即可

RestartAPPTool.restartAPP(getApplicationContext(),100);

今天的文章android 服务 重启,Android APP重启的几种方法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/31087.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注