Android在应用程序的不同部分重用活动

时间:2013-07-23 05:47:22

标签: android android-activity manifest reusability

我正在开发一个应用程序,并希望重用相似的活动,以便不再复制几乎相同的代码。   我们假设我有4个活动: - 主要活动 - Task1Activity - Task2Activity - MenuActivity

Task1Activity或Task2Activity非常相似所以我想创建一个名为TaskActivity的活动,并通过Intent传递一些数据来控制TaskActivity内部的不同行为。   我们可以考虑简化,差异只是导航流程。   我想实现的导航流程是:

MainActivity< - > MenuActivity< - > Task1Activity

                   or

MainActivity< - > Task2Activity

如果我可以在导航流程的两个不同位置重用TaskActivity,我会:

MainActivity< - > MenuActivity< - > TaskActivity

                   or

MainActivity< - > TaskActivity

问题在于,当我在清单文件中定义TaskActivity时,我需要添加类似:

的内容
   <activity
        android:name="br.com.example.TaskActivity"
        android:label="Just an example"
        android:launchMode="singleTask"
        android:configChanges="orientation"
        android:parentActivityName="br.com.example.MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="br.com.example.MainActivity" />
    </activity>

在上面的TaskActivity定义中,我需要告诉Activity将成为我的PARENT_ACTIVITY。   但是此示例的父活动可以是MenuActivity或MainActivity。   如何在不指定父活动的情况下定义TaskActivity?   如果有办法,在Android中按后退按钮时,我是否应该有任何问题?

谢谢, 卡洛斯

2 个答案:

答案 0 :(得分:3)

为什么需要在Manifest中包含PARENT_ACTIVITY的元数据?对你正在做的事情有一些限制吗?您可以在没有PARENT_ACTIVITY的元数据的情况下在AndroidManifest中声明您的活动,这样您的问题就会得到解决。

答案 1 :(得分:1)

经过一些研究,我发现PARENT_ACTIVITY用于较新的Android版本中的按钮UP。由于我不想承担任何风险而且我没有如何在较新的Android版本中进行测试,因此我决定将所有活动的PARENT_ACTIVITY作为我的MainActivity。 对于代码重用,我将使用遗产。