- 浏览: 50542 次
文章分类
- 全部博客 (25)
- Android (19)
- startActivityForResult() (1)
- Intent (3)
- HTML (1)
- onCreate (1)
- Button (3)
- OnClick (3)
- Activity (2)
- savedInstanceState (1)
- Service (2)
- message (1)
- Notification (1)
- Broadcast (1)
- SQLite (1)
- SharePreferences (1)
- Galaxy 9300 (1)
- 刷机 (1)
- root (1)
- ContentProvider (1)
- 笔记本 (1)
- 散热 (1)
- 算法 (3)
- C (4)
- socket (0)
- java (0)
最新评论
Activity的生命周期图如上所示
用一个实例来测试:
1、重写Activity的onCreate、onStart、onResume、onPause、onStop、onDestroy、onRestart
2、MainActivity 有两个按钮btn1、btn2,点击btn1跳转到SecondActivity,点击btn2跳转到ThirdActivity,用Log.i()来记录表出这3个Acitivity的生命状态
MainActivity:
package com.test.activitydemo; //import android.R; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.support.v4.app.NavUtils; public class MainActivity extends Activity { public final static String TAG="MainActivity"; private Button btn1; private Button btn2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i(TAG, "MainActivity-->onCreate"); btn1=(Button)findViewById(R.id.btn1); btn2=(Button)findViewById(R.id.btn2); btn1.setOnClickListener(listener); btn2.setOnClickListener(listener); } private View.OnClickListener listener=new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Button btn=(Button)v; Intent intent=new Intent(); switch(btn.getId()) { case R.id.btn1: intent.setClass(MainActivity.this, SecondActivity.class); break; case R.id.btn2: intent.setClass(MainActivity.this, ThirdActivity.class); break; } startActivity(intent); } }; @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i(TAG, "MainActivity-->onDestroy"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.i(TAG, "MainActivity-->onPause"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.i(TAG, "MainActivity-->onRestart"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.i(TAG, "MainActivity-->onResume"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.i(TAG, "MainActivity-->onStart"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.i(TAG, "MainActivity-->onStop"); } }
SecondActivity:
package com.test.activitydemo; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class SecondActivity extends Activity { public final static String TAG="MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Log.i(TAG, "SecondActivity-->onCreate"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i(TAG, "SecondActivity-->onDestroy"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.i(TAG, "SecondActivity-->onPause"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.i(TAG, "SecondActivity-->onRestart"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.i(TAG, "SecondActivity-->onResume"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.i(TAG, "SecondActivity-->onStart"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.i(TAG, "SecondActivity-->onStop"); } }
ThirdActivity:
package com.test.activitydemo; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class ThirdActivity extends Activity { public final static String TAG="MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.avtivity_third); Log.i(TAG, "ThirdActivity-->onCreate"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i(TAG, "ThirdActivity-->onDestroy"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.i(TAG, "ThirdActivity-->onPause"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.i(TAG, "ThirdActivity-->onRestart"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.i(TAG, "ThirdActivity-->onResume"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.i(TAG, "ThirdActivity-->onStart"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.i(TAG, "ThirdActivity-->onStop"); } }
Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.test.activitydemo" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SecondActivity" android:label="@string/title_activity_second"> </activity> <!-- ThirdActivity以对话框的形式弹出 --> <activity android:name=".ThirdActivity" android:label="@string/title_activity_third" android:theme="@android:style/Theme.Dialog"> </activity> </application> </manifest>
当activity状态为onPause时,不适于进行太耗时的操作;
如果要保存信息,比较安全的做法是当activity在onPause时进行保存,这是因为当activity在onPause、onStop、onDestroy状态时,都有可能被系统杀死,如果在onStop或者onDestroy状态下保存,有可能activity在onPause时已经被系统杀死,从而导致信息丢失。
发表评论
-
ContentProvider
2012-08-09 14:43 856ContentProvider学习笔记 ContentPro ... -
Galaxy 9300 刷机和获取root权限
2012-08-08 14:19 1619刷机和ROOT是两个不同但是很类似的动作。 刷机应该就 ... -
SharedPreferences 存储
2012-07-27 20:02 929SharedPreferences是Android平台 ... -
SQLite 存储
2012-07-27 10:33 805SQLite是一种轻量级的,嵌入式的数据库系统,它占用的资源非 ... -
Android Broadcast 广播
2012-07-23 10:47 946从现实生活中理解广播机制 一听到广播我们第一感觉就会联 ... -
Status Notification
2012-07-22 18:12 1354Status Notification是作用是在页眉的位置,提 ... -
Android Message机制
2012-07-20 11:01 1211参考链接http://www.cnblogs.com/hnra ... -
Android Service之bindService()
2012-07-17 14:37 1224http://www.cnblogs.com/onlylitt ... -
Android Service 之StartService()
2012-07-17 10:25 11797Service是android 系统中的一种组件,它跟Acti ... -
Activity_savedInstanceState
2012-07-14 10:31 4026假设有两个Activity,分别是MainActivity,S ... -
ButtonDemo_OnClick_2
2012-07-13 00:47 635public void onCreate(Bundle ... -
intentDemo_2
2012-07-13 00:45 786<manifest xmlns:android=& ... -
intentDemo_1
2012-07-13 00:45 606package com.test.intentdemo; ... -
ButtonDemo_OnClick_3
2012-07-13 00:45 601package com.test.buttondemo; ... -
ButtonDemo_OnClick_1
2012-07-12 22:51 901public class MainActivity ex ... -
Android开发——关于onCreate的解读
2012-07-12 22:48 623在AndroidManifest.xml文件中的< ... -
startActivityForResult()的用法
2012-07-12 22:43 1616参考链接:http://www.cnblogs.com/mub ... -
Intent传递数据从一个Activity到另一个Activity
2012-07-12 21:19 11831MainActivity package com.te ...
相关推荐
**Activity生命周期** Activity的生命周期包括了从创建到销毁的各个阶段,主要有以下7个关键状态: 1. **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。在这里,通常进行初始化工作,如...
Activity生命周期的理解和管理对于编写高效、响应式的Android应用至关重要。本实验旨在深入探索Activity的生命周期,并通过实践来理解各个阶段的工作流程以及它们之间的转换。 首先,我们来看一下Activity的生命...
这是Activity生命周期的第一个回调,通常在这里进行初始化工作,如设置布局、数据绑定等。 2. **启动(Started)**:`onStart()`方法标志着Activity可见但可能不完全在前台。用户可以看到Activity,但不能与其交互...
在Android应用开发中,Activity是用户界面的基本单元,它负责展示...在提供的`Activity_04`文件中,可能包含了演示这些生命周期方法变化的代码示例,通过学习和分析这些示例,开发者可以加深对Activity生命周期的理解。
"测试Activity生命周期"的DEMO旨在帮助开发者直观地了解和调试Activity在不同场景下的状态变化。在这个DEMO中,我们可以通过观察日志输出或使用Android Studio的调试工具来跟踪Activity的状态。 Activity的生命周期...
### Activity 生命周期总结 在 Android 开发中,理解 Activity 的生命周期是非常重要的,因为它直接影响到应用程序的行为、性能以及用户体验。本文将详细介绍 Activity 生命周期中的各个方法及其触发条件,并通过...
本示例项目“Android activity生命周期示例”旨在帮助开发者深入理解Activity的生命周期及其各个阶段,这对于优化用户体验和资源管理至关重要。 Activity的生命周期包括以下几个主要状态: 1. **创建(Created)**...
这是Activity生命周期中的活跃状态。 - `onPause()`:当Activity即将被另一个Activity覆盖,但仍然部分可见时,系统调用`onPause()`。在此方法中,你应该保存临时数据,但不应执行耗时操作,因为它会影响新Activity...
谷歌官方提供的Activity生命周期示例("Activity lifecycle demo")是一个实用的教学工具,帮助开发者直观地理解Activity在不同情况下的状态变化。 这个demo最初是基于Eclipse开发的,但已经转化为更适合现代开发...
7. onDestroy():Activity即将被销毁时调用,这是Activity生命周期的最后阶段。在此阶段,可以做彻底的清理工作,例如关闭数据库连接、取消定时任务等。 二、Activity与Fragment的生命周期 Fragment是Android 3.0...
### 一、Android Activity生命周期介绍 #### 1. onCreate() 当Activity首次创建时被调用,这是初始化Activity的最佳时机。在该方法中通常会执行一些初始化操作,比如设置布局文件、初始化UI组件等。 示例: ``` @...
总之,深入理解Activity生命周期和其背后的源码逻辑,对于编写高效、响应迅速且用户体验优秀的Android应用至关重要。开发者应熟练掌握这些知识点,以便在设计和调试应用时能得心应手。通过实践和分析ActivityDemo,...
很好的一张Activity生命周期图,可以很清楚了解Activity生命周期的流程图
在这个"Activity生命周期Demo"中,我们将深入探讨Activity如何启动、运行、暂停、停止以及销毁的过程,以及在这些状态转换中如何适当地处理程序逻辑。 1. **Activity生命周期的基本阶段** - **创建(Created)**: ...
这是Activity生命周期的第一个回调,通常在这里进行初始化工作,如设置布局、绑定数据等。 2. **可见(Visible)**:Activity从不可见变为可见,但可能还在启动过程中,此时调用`onStart()`。在这个阶段,Activity...
本示例“测试Android Activity生命周期Demo”旨在通过实际代码帮助开发者理解并掌握Activity的生命周期,这对于创建稳定、高效的Android应用至关重要。 Activity的生命周期包括了多个关键状态,如初始化、启动、...
标题“设备旋转与Activity生命周期”所指的知识点主要是Android中Activity如何响应设备的屏幕方向变化。Activity是Android应用程序的基本组件,它负责与用户进行交互。在设备旋转时,系统会触发Activity的生命周期...
日志追踪(完成以下六步、明白android的四种状态的生命周期和相互切换): 1、启动app、查看控制台输出,发现依次触发onCreate、onStart、onResume这三个方法 2、点击按钮(弹窗风格的Activity),控制台输出onPause...
在“Android学习3——Activity生命周期”这个主题中,我们将深入探讨Activity如何启动、运行、暂停、停止以及销毁,并了解每个状态之间的转换。 Activity生命周期主要包括以下几个关键状态: 1. **初始状态...