2013-02-15 19 views
1

我有以下工作流程的活动时:为什么的onStop()进行的onCreate()之后调用开始内onActivityResult()

  • startActivityForResult(活性1)
  • 完成()呼吁活性1(推时按钮)
  • onActivityResult()==> startActivityForResult(活性2)

===> Activity2.onCreate()被Activity1.onStop之前调用()

为什么我有这个?

被修改:

下面是代码:

1- MainActivity.java

// On click on a button 
    public void start(View view) { 
     Intent activityIntent = new Intent(this, Activity2.class); 
     startActivityForResult(activityIntent, 0); 
    } 

    protected void onActivityResult(int requestCode, 
      int resultCode, 
      Intent data) { 
      super.onActivityResult(requestCode, resultCode, data); 

       Intent activityIntent = new Intent(this, Activity3.class); 
       startActivityForResult(activityIntent, 0); 
      } 

2- Activity2.java

// A button to finish the activity 
public void stop(View view) { 
    finish(); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
} 

3- Activity3.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_activity3); 
} 
+0

你能分享一些代码吗?另外,onPause总是在活动更改时调用onStop,而不是。 – jasonflaherty 2013-02-15 15:56:37

+0

http://developer.android.com/reference/android/app/Activity.html – jasonflaherty 2013-02-15 15:59:45

+1

我的问题是为什么Activity2.onCreate()在Activity1.onStop()之前调用? – 2013-02-15 16:01:57

回答

10

由于生命周期。在从视图中删除活动之后才会调用onStop。因此,在这种情况下,其他人在user-activity2中阻止它之前,不会调用onStop。这意味着Activity2必须已经创建,因为如果你不存在,你不能阻止另一个活动。

+0

好评。有意义,因为活动需要在阻塞之前运行? – jasonflaherty 2013-02-15 16:23:05

+0

感谢您的评论,我想了解行为。我用一些代码更新了我的问题。在我看来,onCreate()在onStop()之前被调用。 – 2013-02-15 16:29:17

+1

因为活动1不会停止(),直到活动2开始()准备好被调用。这就要求activity2.onCreate已被调用。 – 2013-02-15 16:33:17

相关问题