2015-09-23 64 views
0

我正在嘗試編寫一個用戶界面自動化測試,並試圖加速它。在測試的某一點上,我需要關閉設備上的所有最新應用程序。我可以通過UiAutomator來做到這一點(目前這樣做),但這不是我關注的測試的一部分,所以我想知道這是否可以通過意向調用來實現?通過Intent調用Android最近的應用程序調用

基於文件結構,我不希望添加新類,更改活動代碼(僅用於測試需要的b/c),或者更改權限太糟糕。

我想沿着線做的事情:

Intent closeIntent = new Intent(context, null); 
closeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
context.startActivity(closeIntent); 

Android的心不是好與空類參數。

我看了下,但他們都不是我真正想要的:

Finish all activities at a time

Intent data not clearing when user presses back button then recent apps button

https://gist.github.com/anonymous/9884978

提前感謝!

回答

1
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
    List<RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE); 

    for (int i = 0; i < tasks.size(); i++) { 
     Log.d("Running task", "Running task: " + tasks.get(i).baseActivity.toShortString() + "\t\t ID: " + tasks.get(i).id); 
     String packageName = processus.processName.split(":")[0]; 
     if (!getPackageName().equals(packageName) && !tasks.contains(packageName)) { 
      am.killBackgroundProcesses(packageName); 
     } 
    } 

希望這將幫助你.....

+0

請告訴我'processus'? – Keith

+0

我沒有讓你交配... – Amaresh

相關問題