1

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

这是(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; 
+0

你是说在创建新活动之前调用MainActivity的onCreate()是什么意思?你遇到了什么错误? –

+0

我现在没有收到错误信息,但是它带来了问题。当我使用YouTube意图调用StartActivity时,似乎创建了MainActivity(MainActivity的onCreate被调用),然后显示了YouTube的活动。当我单击设备的后退按钮时,MainActivity会再次创建。如果我更改了代码并启动了一些其他活动(而不是YouTube),那么MainActivity不会再次创建。 youtube意图的getFlags()返回0.希望现在更清楚。 –

回答

4

这是因为活动改变方向而发生的。在清单中添加:

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

你是对的,但你的建议阻止选择改变方向到我的活动。 –

+1

不,您只能添加 android:configChanges =“orientation | screenSize | keyboardHidden” 它不会在更改屏幕方向后重新创建活动 –

相关问题