在前景方面杀死活动

时间:2012-08-22 11:38:41

标签: android android-intent android-activity

我写了一个应用程序n一个问题。我有三个活动A,B和C.当我从activty A转到B和B到C,如果我按下device上的菜单按钮。我的应用程序进入后台状态。当我重新打开应用程序时,它显示活动C.我希望当我重新打开我的应用程序时,它应该显示活动A而不是活动堆栈中的任何其他活动。 我已经完成了一些活动生命周期方法并试图覆盖它。我有覆盖onStart(),onPause()方法和finsh活动C以及活动B和我面临的问题是当我从活动C转到活动D活动时C完成所有背景活动nm无法在活动D结束时返回活动C. 任何人都可以帮我如何在申请简历上显示具体的活动? 提前解决。

这是我的manifest.xml

<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application    
              android:icon="@drawable/icon"
              android:label="@string/app_name"
              android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >

    <activity   
        android:label="@string/app_name"
        android:name="com.buttonpay.Login"
        android:screenOrientation="portrait"
        android:clearTaskOnLaunch="true" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


     <activity android:name=".ButtonPayActivity"
                android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                android:screenOrientation="portrait"/>    


    <!-- HomeTab Activity -->

            <activity android:name="com.buttonpay.home.Utilities"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>


            <activity android:name="com.buttonpay.home.Top_up"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>
            <activity android:name="com.buttonpay.home.HomeScreen"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>

            <activity android:name="com.buttonpay.home.MyAccount"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>
             <activity android:name="com.buttonpay.home.TransactionHistory"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>
              <activity android:name="com.buttonpay.home.TransactionDetailsActivity"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>
                <activity android:name="com.buttonpay.home.TransactionList"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>
               <activity android:name="com.buttonpay.home.BusinessSummaryActivity"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>
               <activity android:name=".home.MobileMoneyActivity"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>


     <!-- balance tab Activity -->
            <activity android:name="com.buttonpay.balance.BalanceTab"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        />



     <!-- Favouritetab Activity -->
             <activity android:name="com.buttonpay.favourite.FavouriteTab"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        />

  <!-- ComingSoon -->
<activity android:name="com.buttonpay.home.ComingSoon"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>

 <!-- Settings -->
<activity android:name="com.buttonpay.settings.SettingList"
                        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
                        android:screenOrientation="portrait"/>



</application>

1 个答案:

答案 0 :(得分:3)

在清单中,将此设置在根活动上(这是第一个在您的应用中启动的活动,即ACTION_MAIN和CATEGORY_LAUNCHER):

android:clearTaskOnLaunch="true"

您不需要做任何其他事情。没有重写生命周期方法。

编辑经过一些实证实验后添加其他信息:

您需要确保 root活动始终位于任务的活动堆栈中才能使其正常工作。这意味着您无法在 root活动上调用finish(),直到用户真正想要退出您的应用程序(即:当您在根活动中按下BACK键时)。

在您的示例中,您有LoginActivity,MenuActivity和DescriptionActivity,LoginActivity是 root活动。当LoginActivity启动MenuActivity时,它无法自行调用finish()。在这种情况下,当用户在MenuActivity中按下BACK键时,它将返回LoginActivity。如果这不是您想要的,那么您需要在已启动MenuActivity的LoginActivity中设置一个标志,并且在调用onResume()时,您可以检查该标志以确定您是否从MenuActivity返回并且在这种情况下,您可以立即致电finish()