一、Activity活动
学习Android,第一个都会接触Activity滴,Activity表示一个用户界面,是Android应用程序的入口,可以同时有多个界面,但只会显示栈顶的界面。
Activity是Android的重要组成部分,一个程序包括多个Activity,新建项目都会有个程序启动时就调用的MainActivity。新定义Activity需在AndroidManifest配置。
如下是最简单的配置方式:
1 <activity 2 android:name=".OtherActivity" 3 android:label="other" > 4 </activity>
二、Activity的生命周期
Activity的生命周期交由系统管理,每个Activity都是平等的,Activity拥有四种基本状态
1、Active/Running:一个新的Activity启动入栈后,它在屏幕的最前端,处于栈顶。此时它处于可见和可交互状态;
2、Pause:当Activity被一个透明的或Dialog样式的Activity覆盖时,它虽然仍与窗口管理器联系,仍然可见,但是此时它是失去焦点,不可交互的;
3、Stop:当Activity被另一个Activity覆盖时,完全不可见,并且不可交互,此时处于stop状态;
4、Kill:被系统进程杀死或者回收的状态,由于系统资源有限,越是处于栈的底层,越容易被回收;
上面是google官方的Activity生命周期示意图,看图比较好理解和记忆Activity生命周期。结合生命周期状态来讲讲生命周期相关方法
1、onCreate:Activity被启动的调用的第一个方法,作为应用程序的入口点,一般做些 数据初始化和加载用户界面的工作;
2、onStart:在onCreate之后被调用,或者一个Activity从Stop变为Active状态;
3、onResume:从Pause状态被切换为Active状态时被调用;
4、onStop:从Active状态被切换为Stop状态时被调用,一般在这里保存Activity的状态信息;
5、onDestroy:在Active被结束时调用,一般做些释放资源,清除内存等工作。
此外还有一些不常用的方法如"重新启动 onRestart","暂停 onPause"
我们可以新建个Activity,Android.util的 Log类可以实现Android输出Log这一操作,
该类提供了若干静态方法
Log.v(String tag, String msg);
Log.d(String tag, String msg);
Log.i(String tag, String msg);
Log.w(String tag, String msg);
Log.e(String tag, String msg);
分别对应 Verbose, Debug, Info, Warning,Error.
tag是一个标识,可以是任意字符串,通常可以使用类名+方法名, 主要是用来在查看日志时提供一个筛选条件。
如Log.v(tag, msg)用来打印日志查看不同状态间的切换或不同方法的执行情况。
1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_main); 5 Log.v("MainActivity", "onCreate"); 6 } 7 8 @Override 9 protected void onStart() { 10 // TODO Auto-generated method stub 11 super.onStart(); 12 Log.v("MainActivity", "onStart"); 13 } 14 15 @Override 16 protected void onStop() { 17 // TODO Auto-generated method stub 18 super.onStop(); 19 Log.v("MainActivity", "onStop"); 20 } 21 22 @Override 23 protected void onResume() { 24 // TODO Auto-generated method stub 25 super.onResume(); 26 Log.v("MainActivity", "onResume"); 27 } 28 29 @Override 30 protected void onPause() { 31 // TODO Auto-generated method stub 32 super.onPause(); 33 Log.v("MainActivity", "onPause"); 34 } 35 36 @Override 37 protected void onDestroy() { 38 // TODO Auto-generated method stub 39 super.onDestroy(); 40 Log.v("MainActivity", "onDestroy"); 41 }