2015-06-05 147 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爲終止應用程序在其關閉後自行決定。