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

相关问题