我是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";
/**</