【问题标题】:Android reuse activities in different parts of the applicationAndroid 在应用程序的不同部分重用活动
【发布时间】:2013-07-22 01:23:39
【问题描述】:

我正在开发一个应用程序,并希望重用相似的活动,以免重复几乎相同的代码。 假设我有 4 个活动: - 主要活动 - 任务1活动 - 任务2活动 - 菜单活动

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

MainActivity MenuActivity Task1Activity

                   or

MainActivity Task2Activity

如果我可以在导航流程中的 2 个不同位置重用 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 中按下后退按钮时出现任何问题吗?

谢谢, 卡洛斯

【问题讨论】:

    标签: android android-activity manifest reusability


    【解决方案1】:

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

    【讨论】:

    • 遗产是什么意思?
    【解决方案2】:

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

    【讨论】:

    • 如果我这样做,Android可以正确处理导航吗?
    • 如果是这样,这个 PARENT_ACTIVITY 定义是干什么用的?
    • 回答这个问题,我不需要包含 PARENT_ACTIVITY,我只是不想在不知道这是什么以及它可能造成的影响的情况下取消这个定义。这就是为什么我想知道是否没有必要,为什么有人会为 PARENT_ACTIVITY 添加元数据?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    相关资源
    最近更新 更多