Kru*_*hah 5 java android android-lifecycle android-activity
我有一个没有UI的简单活动。我想在通话期间检查活动的生命周期方法。
呼叫通知到达时,没有发生任何预期的情况。当我接受呼叫时,呼叫活动掩盖了我的活动。因此,理想情况下onStop()应立即调用。我已经检查了日志,仅onPause()在接受呼叫时才被呼叫。但是2-3秒后onStop()也被调用。
活动
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
Log.e(TAG, "onStart: ");
}
@Override
protected void onStop() {
super.onStop();
Log.e(TAG, "onStop: ");
}
@Override
protected void onPause() {
super.onPause();
Log.e(TAG, "onPause: ");
}
@Override
protected void onResume() {
super.onResume();
Log.e(TAG, "onResume: ");
}
}
Run Code Online (Sandbox Code Playgroud)
表现
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
日志
05-17 22:10:25.025 E/MainActivity: onStart:
05-17 22:10:25.054 E/MainActivity: onResume:
When call has been accepted:
05-17 22:10:34.405 E/MainActivity: onPause:
After 2-4 seconds:
05-17 22:10:38.144 E/MainActivity: onStop:
Run Code Online (Sandbox Code Playgroud)
按照该文件中onStop():
Called when you are no longer visible to the user. You will next receive either onRestart(), onDestroy(), or nothing, depending on later user activity.
Run Code Online (Sandbox Code Playgroud)
在这里,另一个活动是覆盖我的活动并将其隐藏。因此,onStop()应在之后立即调用onPause()。
我已经在Moto G4设备和Nexus 5仿真器上进行了测试。两者都显示相同的行为。onStop()调用延迟的原因是什么?
谁能解释内部细节?