0

在我的應用程序中,我只有一個活動,其中包含幾個碎片通過回退按鈕退出應用程序後終止我的應用程序

活性的佈局(main.xml):

<LinearLayout...> 

    <FrameLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/fragment_placeholder"> 
    </FrameLayout> 

</LinearLayout> 

我唯一活動

public class MyActivity extends FragmentActivity{ 
    ... 
    @Override 
    protected void onCreate(Bundle arg0) { 
     super.onCreate(arg0); 
     setContentView(R.layout.main); 

     //I dynamically add fragments into fragment_placeholder of the layout 

     FirstFragment firstFragment = new FirstFragment(); 

     FragmentManager fragmentManager = getSupportFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 

     fragmentTransaction.add(R.id.fragment_placeholder, FirstFragment, "first"); 
     fragmentTransaction.commit(); 
    } 


} 

我在我的上述活性,我動態第一片段添加到佈局。其他片段相應地替換該片段。

我知道當用戶按下退出按鈕退出應用程序時,默認情況下,我的應用程序仍然會在背景上運行。

什麼,但是我想要的是終止該應用程序當用戶看到firstFragment並按後退按鈕(退出應用程序)。 但是我怎樣才能在Android中以技術方式殺死我的應用程序(以編程方式)?

+0

我認爲我們必須調用finish( )關閉活動的活動。 – 2012-03-16 10:10:30

+0

但活動關閉真的殺死了應用程序? – 2012-03-16 10:14:10

+0

活動將被關閉,但應用程序的信息。可以保存以便下次啓動時快速啓動應用程序。請參閱Android Developers網站上提供的Android應用生命週期以獲取更多信息。 – 2012-03-16 10:22:22

回答

3

我最終殺死我的應用程序的過程:

android.os.Process.killProcess(android.os.Process.myPid()) 
+0

不推薦。 http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon – 2012-03-16 23:21:10

+0

我想知道這樣做,我會得到推送通知或不 – 2014-09-16 07:45:25

2

您可以通過使用下面的代碼重寫後退按鈕的行爲,並殺死你的活動

  public void onBackPresed(){ 

        finish(); 

        } 
+0

完成()回調是否真的殺死了應用程序進程? – 2012-03-16 10:22:29

+0

調用完成();從Tasks和Back堆棧中刪除內存,其中所有運行或暫停應用程序都存儲爲堆棧 – 2012-03-16 10:31:05

+0

我明白了,事情是我不想堆棧任何東西,這就是爲什麼我的帖子主題是如何殺死應用程序。 – 2012-03-16 11:24:11