0
MMuzammil: MainActivity:in onCreate 
MMuzammil: FirstFragment:in onAttach 
MMuzammil: FirstFragment:in onCreate 
MMuzammil: FirstFragment:in onCreateView 
MMuzammil: FirstFragment:in onActivityCreated 
MMuzammil: FirstFragment:in onStart <---- 
MMuzammil: MainActivity:in onStart <---- 
MMuzammil: MainActivity:in onResume 
MMuzammil: FirstFragment:in onResume 

Fragment.onStart가 Activity.onStart보다 먼저 호출되는 것을 볼 수 있습니다. 어떤 사람이이 행동의 원인이 될 수 있다는 것을 알고 있습니까? 활동 포 그라운드로 이동하는 경우, 활동의 콜백 메소드는 항상 먼저Activity.onstart 전에 Fragment.onstart가 호출되고 있습니다.

활동을 호출해야하기 때문에 :

public class MainActivity extends AppCompatActivity { 

public static final String TAG = "MMuzammil"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Log.d(TAG, "MainActivity:in onCreate"); 
    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new FirstFragment()).commit(); 
} 

@Override 
protected void onStart() { 
    super.onStart(); 
    Log.d(TAG, "MainActivity:in onStart"); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    Log.d(TAG, "MainActivity:in onResume"); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    Log.d(TAG, "MainActivity:in onPause"); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
    Log.d(TAG, "MainActivity:in onStop"); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    Log.d(TAG, "MainActivity:in onDestroy"); 
} 

@Override 
protected void onRestart() { 
    super.onRestart(); 
    Log.d(TAG, "MainActivity:in onRestart"); 
} 
} 
+0

더 많은 코드를 표시하십시오. 로그를 인쇄하는 코드 –

+0

@VladMatvienko 지금 확인하십시오. –

답변

1

그것은 당신이 당신의 활동에 로그를 인쇄 한 후 super.onStart()를 호출되고, 때문에 . 따라서 기본적으로 활동의 onStart()가 먼저 실행됩니다.

내 생각 엔 :)

+0

Activity에서도 super.onResume()을 호출하고 있습니다. 내 활동의 onResume() 로그가 처음 실행되는 이유는 무엇입니까? –

+1

일부 시간 기록표는 같은 방식이 아닙니다. 그리고 그것은 또한 시스템 (전화 OS)이 onResume of Activity와 onResume of Fragment 사이에서 더 많은 일을 할 수 있기 때문에 다릅니다. 그것은 전화에서 전화로, OS에서 OS로 다를 것이지만, 그 순서는 틀림없이 똑같을 것입니다. – Neo

2

정상적인 동작입니다. 시작하기 전에 조각으로 처리해야하는 경우 onAttach (Context context) 메소드를 더 잘 재정 의하여 사용하십시오.

+1

의미가 없습니다. onStart 이전에 호출 된 onCreate 또는 onStart 이후에 호출되는 onResume에 대한 이유가 아닌 이유는 무엇입니까? –