有些时候我们会想要让我们的应用关闭,通常做法如下:
1:通过拿到当前的进程 id ,调用 shell 命令,杀死进程
int
pid = android.os.Process.myPid();
String command = "kill -9 "+ Process.myPid();
try {
Runtime.getRuntime().exec(command);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String command = "kill -9 "+ Process.myPid();
try {
Runtime.getRuntime().exec(command);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2:调用系统的方法,杀死进程
android.os.Process.killProcess(android.os.Process.myPid());
3:调用系统的接口,退出应用。
System.exit(0);同样有的时候在收到系统发送的广播或者其他操作时我们想要启动我们的应用;
1 . 获得包名,重启应用
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
am.restartPackage("com.android.nfc")
2. 重启应用的activity
Intent k = context.getPackageManager().getLaunchIntentForPackage("com.android.nfc");k.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(k);
3.设置定时任务重启
Intent intent1 = MyApplication.getContext().getPackageManager().
getLaunchIntentForPackage(MyApplication.getContext().getPackageName());
PendingIntent restartIntent = PendingIntent.getActivity(MyApplication.getContext(), 0, intent1,
PendingIntent.FLAG_ONE_SHOT);
AlarmManager mgr= (AlarmManager)MyApplication.getContext().getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 3000,restartIntent); // 3秒钟后重启应用
getLaunchIntentForPackage(MyApplication.getContext().getPackageName());
PendingIntent restartIntent = PendingIntent.getActivity(MyApplication.getContext(), 0, intent1,
PendingIntent.FLAG_ONE_SHOT);
AlarmManager mgr= (AlarmManager)MyApplication.getContext().getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 3000,restartIntent); // 3秒钟后重启应用