2013-03-13 112 views
1

我已經應用A和應用B從另一個應用程序關閉應用

我以這種方式推出B帶從A意圖:

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setClassName("com.applicationB", "com.applicationB.MainActivity"); 
intent.putExtra(EXTRA_NAME,"name"); 
startActivity(intent); 

當用戶關閉應用程序。我想申請B到也關閉。應用程序B具有JNI並使用exec()命令。

我試過android:sharedUserId但是當應用程序A試圖與上面的代碼推出B I得到這個錯誤:

Error running exec(). Command: [....] Working Directory: null Environment: (not null, it shows all the environment. 

任何想法?

回答

1

如果兩個應用程序都由您自己編程,您可以考慮在應用程序B中添加一個BroadcastReceiver,注意所有活動都會關閉。在應用程序A關閉之前,請致電該接收器並完成。

如果您不確定顯示哪項活動,您可以使用BroadcastReceiver擴展Activity類,以便通知所有活動。

如果應用程序B沒有被您編程,您可以使用killbackgroundProcesses(),例如,

ActivityManager activityManager = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE); 
activityManager.killBackgroundProcesses(myProcessId); 

...但是,這隻適用於應用程序B實際上在後臺。此外,這並不是關閉應用程序的最佳選擇,因爲您不知道該應用程序正在執行什麼操作。

編輯:在該主題上找到我最喜歡的示例:-)檢查http://www.hrupin.com/2011/10/how-to-finish-all-activities-in-your-android-application-through-simple-call - 它顯示瞭如何關閉應用程序內的所有活動。然而,從另一個角度來看這不是一大步......

相關問題