Stopping and Restarting an Activity

适当的停止和重新启动你的活动是activity生命周期的重要流程,它确保您的用户知道app时活着的而且不会丢失进程。有一些关键的场景你的activity会停止和重新启动:

1.用户打开最近的app窗口并从你的app切换到另一个app。目前的activity在你app的前台停止状态。如果用户点击图标返回你的app或从最近的app窗口返回,该活动将重新启动。

2.用户在你的app中执行了一个动作开启了一个新的activity,当第二个activity被创建后,当前的activity会停止。如果用户按下后退按钮,第一个activity会重新启动。

3.用户在使用你的app时接到了一个电话

activity类提供了两个生命周期方法,onStop()和onRestart(),它允许您专门处理你的活动如何处理被停止并重新启动。与暂停的状态不同,停止状态保证UI不再是可见的并且用户的焦点与activity是分开的(或一个完全独立的app)。

图解:当用户离开你的activity,系统调用onStop()(1)停止activity。如果用户在你的activity是stopped状态时返回,系统调用onRestart()(2),紧接着onStart()(3)和onResume()(4)。请注意,无论什么情况导致活动停止,系统总是在onStop()之前调用onPause()。

停止你的Activity



当你的activity调用onStop()方法,它不再是可见的而且应该释放几乎所有资源当用户不再使用它。一旦你的活动停止,如果需要恢复系统内存,系统可能会破坏实例。在极端的情况下,系统可能会简单地杀死你的app不通过调用onDestroy()方法,所以重要的是你使用onStop()来释放资源,否则可能会造成内存泄漏。

尽管onPause()方法是在onStop()之前被调用,你也应该使用onStop()来执行更大、更多的CPU密集型关闭操作,如将信息写入数据库中。

举例来说,这里实现了onStop()方法来保存草稿的内容:

@Override

protected void onStop() {

super.onStop();  // Always call the superclass method first

// Save the note‘s current draft, because the activity is stopping

// and we want to be sure the current note progress isn‘t lost.

ContentValues values = new ContentValues();

values.put(NotePad.Notes.COLUMN_NAME_NOTE, getCurrentNoteText());

values.put(NotePad.Notes.COLUMN_NAME_TITLE, getCurrentNoteTitle());

getContentResolver().update(

mUri,    // The URI for the note to update.

values,  // The map of column names and new values to apply to them.

null,    // No SELECT criteria are used.

null     // No WHERE columns are used.

);

}

时间: 2024-10-13 18:29:21

Stopping and Restarting an Activity的相关文章

Android学习路线(十四)Activity生命周期——停止和重启(Stopping and Restarting)一个Activity

先占个位置,下次翻译~ :p Properly stopping and restarting your activity is an important process in the activity lifecycle that ensures your users perceive that your app is always alive and doesn't lose their progress. There are a few of key scenarios in which

Stopping and Restarting an Activity 停止和重新启动活动

Stopping and Restarting an Activity 停止和重新启动活动 PreviousNextGet started This lesson teaches you to Stop Your Activity                        停止您的活动 Start/Restart Your Activity            开启/重新开启您的活动 You should also read Activities Try it out Download t

Android学习路线(十一)管理Activity的生命周期

当一个用户进入,退出,再次进入你的应用时,你的应用中的Activity 会在它的生命周期的各个状态下切换.例如,当你的activity第一次启动,它出现在系统的前方接受用户的焦点.在这个过程中,Android系统调用了一系列的生命周期方法来设置UI和其他组件.如果用户执行了一个操作,启动了另一个activity或者切换到其它应用中,你的activity会移动到后台(这时activity已经不可见,但是它的实力和状态都保持不变),系统会调用另外的一些生命周期方法. 通过这些生命周期方法,你可以声明

Managing the Activity Lifecycle 管理活动的生命周期

Managing the Activity Lifecycle 管理活动的生命周期 Previous         Next         Get started Dependencies and prerequisites 依赖和先决条件 How to create an Android project (see Creating an Android Project) 如何创建一个Android项目(参见创建一个Android项目) You should also read 你也应该阅读

Android官方入门文档[13]暂停和恢复一个Activity活动

Android官方入门文档[13]暂停和恢复一个Activity活动 Pausing and Resuming an Activity暂停和恢复一个Activity活动 This lesson teaches you to1.Pause Your Activity2.Resume Your Activity You should also read?Activities 这节课教你1.暂停您的Activity活动2.恢复您的Activity活动 你也应该阅读?Activity活动 Try it

Android官方入门文档[14]停止和重新启动一个Activity活动

Android官方入门文档[14]停止和重新启动一个Activity活动 Stopping and Restarting an Activity停止和重新启动一个Activity活动 This lesson teaches you to1.Stop Your Activity2.Start/Restart Your Activity You should also read?Activities 这节课教你1.停止您的Activity活动2.启动/重新启动您的Activity活动 你也应该阅读?

Android开发入门

Getting Started Welcome to Training for Android developers. Here you'll find sets of lessons within classes that describe how to accomplish a specific task with code samples you can re-use in your app. Classes are organized into several groups you ca

Android文档 学习目录

Building Your First App After you've installed the Android SDK, start with this class to learn the basics about Android app development. Creating an Android Project Running Your Application Building a Simple User Interface Starting Another Activity A

Android官方入门文档

Android官方入门文档 欢迎来到为Android开发者的培训.在这里,你会发现套课中,描述了如何实现代码示例中的应用程序,你可以重复使用一个特定的任务类.类被组织成可以在左侧导航的顶层看到几个组.这第一组,入门,教你最基本的Android应用程序的开发.如果你是一个新的Android应用程序开发者,你应该按照顺序完成这些课程. 如果你认为你可能更喜欢通过互动视频培训学习的基础知识,看看这个预告片在Android开发的基础的一门课程. Getting Started Welcome to Tr