android activity pause,关于android:onPause()和onStop()在Activity中

本文探讨了Android新手在理解Activity生命周期中遇到的问题,特别是onPause()和onStop()方法的区别。作者在模拟器中测试发现,按下主页按钮导致onPause()和onStop()都被调用,期望只调用onPause()来保持应用状态。通过日志跟踪,发现即使在较新版本的Android中,onStop()也可能在活动不可见时被调用。文章讨论了如何正确保存活动状态,建议使用onSaveInstanceState()和onRestoreInstanceState()来保存和恢复数据。
摘要由CSDN通过智能技术生成

我是Android开发的新手,但我仍然无法理解活动中的onPause()和onStop()方法。

在我的应用程序中,我有一个名为Counter的静态类,该类将变量的状态保存在应用程序的内存中。我的应用程序在模拟器中运行良好。我试图测试的是onPause()与onStop()的差异行为。

对于onPause,我希望保留存储在Counter类的成员中的值,而调用onStop()时,我希望将计数器值重置为零。因此,我覆盖了onStop()并将计数器类中的变量设置为零。但是,在模拟器中,我似乎无法使应用程序处于"暂停"状态。在模拟器中,我打开我的应用程序,进行锻炼。然后,我按下了模拟器的主页按钮(而不是后退按钮),并启动了另一个应用程序,认为这会模仿onPause()活动。但是,仿真器似乎并没有兑现这一点(我使用的是armeabi v7a仿真器),它似乎总是在调用onStop(),因为根据onStop()中的覆盖,我的计数器值全部都归零。这是仿真器固有的,还是我做错了什么才能使我的活动进入暂停状态?

您可以添加代码来强调您的问题吗?

请参阅[在什么情况下出现对话框会导致onPause()被调用?] [1] [1]:stackoverflow.com/questions/7240916/

我不确定要使用哪个仿真器进行测试,但是onPause是确保在Activity失去焦点时始终可以调用的一种方法(而且我之所以总是这样,是因为在某些设备上,尤其是那些运行Android 3.2+的设备) ,并不总是保证Activity销毁之前会被调用)。

对于初学者来说,理解Activity生命周期的一种好方法是用Log乱填充您的重写方法。例如:

public class SampleActivity extends Activity {

/**

* A string constant to use in calls to the"log" methods. Its

* value is often given by the name of the class, as this will

* allow you to easily determine where log methods are coming

* from when you analyze your logcat output.

*/

private static final String TAG ="SampleActivity";

/**</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值