gpt4 book ai didi

Android:调用onPause但不调用onStop的场景?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:37 24 4
gpt4 key购买 nike

我想了解 onPause 和 onStop 之间的区别。

我已经阅读了所有不同的论坛,但我仍然不清楚其中的区别。我创建了一个简单的应用程序来尝试测试何时调用哪个方法。为此,我只是在每个方法中放置了记录器。

来 self 的试验-

  1. 弹出窗口不调用任何一个方法
  2. 切换到另一个 Activity 会同时调用这两种方法
  3. 下拉通知栏不会调用任何方法

我只看到两种方法要么被快速连续调用,要么根本没有被调用。我试图找到调用 onPause 但不调用 onStop 的场景。

目的是了解是否需要定义 onPause。如果只调用 onPause 的场景如此少见,为 onPause 单独写代码就更没有意义了。写 onStop 还不够吗?

public class LifecycleActivity extends ActionBarActivity {

@Override
protected void onDestroy() {
super.onDestroy();
Log.d("Rachit", "In Destroy Method");
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lifecycle);
Log.d("Rachit", "In Create Method");
}

@Override
protected void onStart() {
super.onStart();
Log.d("Rachit", "In Start Method");
}

@Override
protected void onResume() {
super.onResume();
Log.d("Rachit", "In Resume Method");
}

@Override
protected void onPause() {
super.onPause();
Log.d("Rachit", "In Pause Method");
}

@Override
protected void onRestart() {
super.onRestart();
Log.d("Rachit", "In Restart Method");
}

@Override
protected void onStop() {
super.onStop();
Log.d("Rachit", "In Stop Method");
}
}

最佳答案

我后来想通了,但忘了在这里发布我的答案。

我注意到调用了 onPause() 而没有立即调用 onStop() 的实例是当我在手机上打开另一个应用程序时收到来自另一个应用程序的通知。

例如,假设您目前在手机上运行 Facebook。如果您收到来自 WhatsApp 的通知(在弹出对话框中),您的 Facebook Activity 将暂停。如果您在此期间关闭 WhatsApp 弹出窗口,Facebook Activity 将恢复。另一方面,如果您从弹出消息中打开 WhatsApp,您的 Facebook Activity 将停止。

关于Android:调用onPause但不调用onStop的场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31145255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com