我正在开发一个应用程序,并希望重用相似的活动,以便不再复制几乎相同的代码。 我们假设我有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中按后退按钮时,我是否应该有任何问题?
谢谢, 卡洛斯
答案 0 :(得分:3)
为什么需要在Manifest中包含PARENT_ACTIVITY的元数据?对你正在做的事情有一些限制吗?您可以在没有PARENT_ACTIVITY的元数据的情况下在AndroidManifest中声明您的活动,这样您的问题就会得到解决。
答案 1 :(得分:1)
经过一些研究,我发现PARENT_ACTIVITY用于较新的Android版本中的按钮UP。由于我不想承担任何风险而且我没有如何在较新的Android版本中进行测试,因此我决定将所有活动的PARENT_ACTIVITY作为我的MainActivity。 对于代码重用,我将使用遗产。