我目前有两个应用程序。
App A有一个现有应用程序列表,您可以单击并打开它们。包括哪个是App B.现在我想只运行App B一段时间~30分钟。
有没有办法自动关闭App B并重新打开App A?我想完全关闭App B.有点像你按下Android上的软按钮并通过向左/向右滑动关闭应用程序。
我尝试过使用KillBAckgroundProcess和killProcess,但它并没有完全模拟应用程序的“向左/向右滑动”。我已经看过堆栈溢出的其他问题,但是没有人能够以这种特定的方式解决这个问题。
示例代码:
//process
for (ActivityManager.RunningAppProcessInfo process : processes) {
if(process.processName.equals("com.example.adam2392.helloworld")) {
processToKill = process.processName;
processId = process.pid;
}
}
//packages
for (ApplicationInfo packageInfo : packages) {
if (packageInfo.packageName.equals("com.example.adam2392.helloworld")) {
packageToKill = packageInfo.packageName;
}
}
am.killBackgroundProcesses(packageToKill);
android.os.Process.killProcess(processId);
答案 0 :(得分:0)
我相信对你的情况更有效的方法是在App B的onStart()或onCreate()方法中设置一个警报,该方法在30分钟后熄灭并运行你需要它运行的任何代码来终止进程然后终止App B.我自己从未这样做过,但this link有一个很好的教程,关于在Android中使用Alarms安排应用程序做某事。对于您的情况,您很可能会想要使用
AlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 60 * 1000, PendingIntent)
作为警报的触发器,因为App B可能没有理由在30分钟后开始关机过程。
至于关闭应用程序,我相信这应该对你有用:
public void killApp() {
Intent goHomeIntent = new Intent(Intent.ACTION_MAIN);
goHomeIntent.addCategory(Intent.CATEGORY_HOME);
goHomeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(goHomeIntent);
finish();
}
这可能并不像你想要的那么强大,但通常你想让Android在关闭后自行决定终止应用程序。