2012-04-14 31 views
1

好吧,我難倒了:-(爲什麼我不能殺死一個活動我開始使用killBackgroundProcesses?

作爲一個實驗,我一直在試圖啓動一個活動,然後晚些時候使用killBackgroundProcesses從ActivityManager包。我沒有得到任何錯誤關機。它只是沒有做任何事情

下面的代碼被縮小了大約我可以得到它作爲一個測試,我開始活動(成功),然後當我的onPause方法被調用,我嘗試並停止剛剛開始的事情(在我的真實代碼中,這種情況發生在晚些時候)。

鍵入它,它讓我意識到可能在Act上使用killBackgroundProcesses目前在屏幕上的生命可能沒有意義。如果是這樣,是否有其他方法來阻止此活動?我沒有這個其他應用程序的源代碼,我啓動了它,現在我只想讓它消失。我也意識到這不是一個正常的Activity生命週期行爲,但至少現在,這對我來說是一個特例。

我會很感激任何見解或解決方案。

謝謝!

清單:

... 
<uses-sdk android:minSdkVersion="8" /> 
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/> 
... 

代碼:

public class MainActivity extends Activity 
{ 
    static String PACKAGE = "com.abc.def"; 

    ... 

    Intent i = getPackageManager().getLaunchIntentForPackage(PACKAGE); 
    startActivity(i); 
    ... 

    @Override 
    protected void onPause() 
    { 
     // just to see if we can, kill the activity we just started 
     ActivityManager manager = (ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); 

     manager.killBackgroundProcesses(PACKAGE);  
    } 
} 

回答

1

調用killBackgroundProcesses被允許Android框架(內部系統或合作伙伴的ROM開發者喜歡HTC,三星等),而不是第三第三方應用程序。相反,您應該在您的活動onPauseonStop上調用finish();方法,以便在屏幕消失時自動將其銷燬。

+0

您是否想過forceStopPackage?例如http://www.mail-archive.com/[email protected]/msg103590.html我不知道如何在另一個我想要離開的活動上調用finish()。 :-( – user1088497 2012-04-14 18:21:08

+0

你無法控制其他人的應用程序,只能在自己的活動中調用此應用程序 – waqaslam 2012-04-14 19:53:08

+0

當您將應用程序置於前端時,則實際上並不會殺死其他應用程序,實際上,您的應用程序會獲得專注和另一個去** onStop **狀態,它不是一個不好的android行爲,它的完美,但是你試圖完成的是不好的:)想象一下,如果你的應用程序被其他人的應用程序克服了,你會感覺如何然後? :) – waqaslam 2012-04-14 21:00:40

相關問題