【问题标题】:onBackPressed() not working inside ActivityGrouponBackPressed() 在 ActivityGroup 中不起作用
【发布时间】:2011-09-11 12:08:48
【问题描述】:

我有一个ActivityGroup,其中有一个活动。我在这个活动中有overrided onBackPressed()。但不幸的是,我的onBackPressed() 没有被调用。所以我尝试了onKeyDown()。但是一点效果都没有。我的问题是,我在ActivityGroup 中给出的onBackPressed() 事件获得了控制权。如何在我的子 Activity 中覆盖 Back Press 事件?

感谢任何帮助。

【问题讨论】:

标签: android activitygroup


【解决方案1】:

我刚刚遇到了同样的问题,我通过从 ActivityGroup 调用当前活动的 onBackPressed 来解决它:

@Override
public void onBackPressed()
{
    int length = idList.size();
    if (length > 1)
    {
        Activity current = getLocalActivityManager().getActivity(
            idList.get(length - 1));
        current.onBackPressed();
    }
}

idList 是活动组中的活动列表。

【讨论】:

  • 实际上我在我的活动中使用了 MediaPlayer。我按照您的建议进行了尝试,现在我可以调用我当前活动的 onBackPressed(),在该活动中我已经停止了我的 MediaPlayer。但是回到我的ActivityGroup后仍然不会停止播放。
  • 您能详细说明您是如何维护 ID 列表的吗?调用 getLocalActivityManager().getCurrentActivity() 似乎很自然,但这似乎返回 null。
  • 如果您不想要当前活动怎么办?我正在使用 ActivityGroup 来管理一组组。如果我有活动 A、B、C、D,目前在活动 D 上并想返回 B。我必须能够在 LocalActivityManager 中的 .destroyActivity 命令中指定活动 B。我维护的列表提供了这一点。
  • @ArpitGarg 如果您要标记答案,您能否至少解释一下为什么它不起作用,或者给出适当的解决方案?
  • @MattBecker 我曾经从 ActivityGroup 调用当前活动的 onBackPressed:但是没有什么问题是一样的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多