首先Activity是四大组件之一,也是用的最多的组件,主要负责显示内容和用户交互的部分。
Activity到底是怎么一回事,我也花了一段时间来查看好多网站和书本才略懂一些,个人觉得学习Activity首先就应该看它的生命周期:
这张图值得仔细琢磨,一个Activity的生命周期中:创建起来就会自动调用onCreate()-->onStart()-->onResume()然后就显示了,当你按BACK键的时候就会一次调用onPause()-->onStop()-->onDestroy(),举个最直接的例子就是建完工程之后运行,然后按BACK键结束应用,这2个动作对应于上面的2个过程。
还有各种情况,http://www.oschina.net/question/54100_27841这个博客讲得好具体易懂了,我学习的时候就参考了这个博客,看完这个博客,大体就了解了Activity的生命周期中各种函数什么时候会调用。
知道了各种函数什么时候调用还不够,下面就具体地重现下这些情况,在这个之前先来学习一下一些类,很多书都是这样:举的例子里面都涉及了后面的知识,然后在下面注释一下叫你详细的请参数后面第几章的内容,好讨厌的感觉。
(1)Bundle类:类似于Map的一个类,保存的也是key-value对:举个例子:
Bundle bundle=new Bundle();
bundle.putString("username", "my_username");
bundle.putInt("password", 123456);
String usernameString=bundle.getString("username");
int password=bundle.getInt("password");
(2)Intent类:它是Android组件之间通信的信使,Intent对象就好比一个信封,要有目的地(必须有)和内容(可选),参考自http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/
(3)Android的调试方法:Logcat,利用Log类的各种方法来显示内容Log.e(TAG, "onCreate-----------------");这样一句话运行的时候就会在Logcat的error栏目输出onCreate-----,通过这个可以确定这个语句所在的方法运行了。
有了这个大体的了解之后就好讲了。
Activity的创建:
启动另一个Activity:
<pre name="code" class="java">btn1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
Intent intent=new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
});
Button2的监听器:
<pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">btn2.setOnClickListener(new View.OnClickListener()</span>
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
Intent intent=new Intent(SecondActivity.this, MainActivity.class);
startActivity(intent);
}
});
这里再来结合一下Activity的生命周期来了解生命周期: