【问题标题】:startActivity with YouTubeStandalonePlayer intent makes MainActivity be created具有 YouTubeStandalonePlayer 意图的 startActivity 使 MainActivity 被创建
【发布时间】:2013-11-28 17:26:36
【问题描述】:

当我调用 startActivityForResult(或 startActivity)时,即使在创建新活动之前,也会调用 MainActivity 的“onCreate”。 其他意图不会发生这种情况

这是列表视图中具有适配器的按钮的单击处理程序内的代码(在 SherlockActionBar 选项卡内的片段内):

            ((MainActivity)context).setVideoId(v.getTag().toString());
            Intent videoIntent = YouTubeStandalonePlayer.createVideoIntent((Activity) context, "AIzaSyC1sF6kq9hHGrQvRSiU8Ks5iYfVCbdg7zA", v.getTag().toString(), 0, true, false);
            ((Activity)context).startActivityForResult(videoIntent, 12);

这是适配器的构造函数:

    public ItemAdapter(Context c, int textViewResourceId) {
    super(c, textViewResourceId);
    this.layoutResourceId = textViewResourceId;
    this.context = c;

【问题讨论】:

  • 在创建新活动之前调用 MainActivity 的 onCreate() 是什么意思?你遇到了什么错误?
  • 我现在没有收到错误,但它正在制造问题。当我使用 YouTube 意图调用 StartActivity 时,似乎创建了 MainActivity(调用了 MainActivity 的 onCreate),然后显示了 YouTube 的活动。当我单击设备的后退按钮时,会再次创建 MainActivity。如果我更改代码并启动其他活动(不是 youtube 的),则不会再次创建 MainActivity。 youtube 意图的 getFlags() 返回 0。希望现在更清楚。

标签: android android-intent actionbarsherlock android-youtube-api start-activity


【解决方案1】:

这是因为活动改变了方向。在清单中添加:

<activity
android:configChanges="orientation|screenSize|keyboardHidden"
...

【讨论】:

  • 您是对的,但您的建议阻止了更改我活动方向的选项。
  • 不行,你只能添加android:configChanges = "orientation | screenSize | keyboardHidden" 它不会在改变屏幕方向后重新创建活动
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多