2015-06-05 152 views
0

我目前有两个应用程序。Android杀死后台进程并关闭应用程序

应用程序A有一个您可以点击并打开的现有应用程序列表。包括哪些是应用程序B.现在我只想运行应用程序B一段时间〜30分钟。

有没有办法自动关闭应用程序B并重新打开应用程序A?我想完全关闭应用程序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

我相信什么工作适合您的情况最好是在应用程序B的在onStart()或onCreate()方法是30分钟,运行任何你的代码后熄灭设置警报需要它来运行杀死进程,然后终止应用程序B.我从来没有这样做过,但this link有一个很好的教程,关于在Android中使用警报安排一个应用程序来做一些事情。对于你的情况,你最有可能将要使用

AlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
      SystemClock.elapsedRealtime() + 60 * 1000, PendingIntent) 

的触发器,您的担忧,因为可能没有原因,应用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为终止应用程序在其关闭后自行决定。