书签:要有足够的动力
由于4号发布的一篇文得到读者反馈不是读书笔记,我也发现自己重新看回笔记时必须很仔细地看,甚至也很难回忆起书中知识点,所以我重新调整,写出V2版本,希望大家喜欢。
1.创建Activity,所有四大组件的使用,都需要在AndroidManifest.xml文件中注册。
2.用完记得销毁activity,finish();
3.采用Intent切换activity,隐式Intent并不能实现直接跳转,需要指定两个条件(intent-filter):action和category。
> 使用隐式intent,不但可以打开自己编写的activity,还可以打开系统编写的activity,比如浏览器,打电话等。
4.向下一个activity传递数据,使用putExtra()将数据传入intent,使用getIntent()获得传递来的intent,然后使用getStringExtra()获得传递来的数据。
>返回数据给上一个activity,采用startActivityForResult(intent, 1)。在下一个activity中,建立新的intent,然后将data利用intent.putExtra()放入intent,setResult(RESULT_OK, intent)放置result,其中RESULT_OK为resultcode,用于在上一个activity中分辨是哪一个activity返回的数据。最后,finish()。之后,在上一个activity中,重写onActivityResult()方法。
同样的,如果在第二个activity中,是按返回键返回的,可以在第二个activity中,重写onBackPressed()方法返回数据,方法同上。
5.activity被回收数据保存,onSaveInstanceState()方法,其携带一个bundle类型参数,bundle可以保存各种信息。
>恢复数据,则在onCreate()方法中,传入的参数为Bundle savedInstanceState,利用这恢复数据。
String data=savedInstanceState.getString(“saved”);
6.activity的四种启动模式,可以在标签中android:launchMode定义。
standard:打开activity,就放入栈顶
singleTop:打开activity,检查栈顶是否已经存在该activity,存在了就不创建。不存在才创建。不过,如果该activity不在栈顶,但也存在,则也会重新创建一个。
singleTask:检查整个返回栈,如果存在某个activity,则不会重新创建。
singleInstance:创建一个activity,重新在一个新的返回栈(或Task)中创建,该activity与其他activity不在同一个Task中,其他程序也可以调用这个activity的实例。
7.知道当前页面是哪一个activity:新建一个BaseActivity extents Activity,其中在onCreate()中打印该activity的信息
Log.i(“BaseActivity”,getClass().getSimpleName()); //获得类名
然后,所有activity都extents BaseActivity即可
8.随时随地退出程序:首先,新建一个activity管理类,实现所有的activity的添加、删除和finish()。
然后,修改BaseActivity,在onCreate()中添加this,onDestory()中移除this
ActivityCollector.addActivity(this);
ActivityCollector.removeActivity(this);
9.给每个activity都添加一个合适的启动方法
在SecondActivity中添加了startActivity()方法之后,在任意的activity中启动SecondActivity,都可以调用该方法,而且知道需要传入哪些参数。
比如在MainActivity中启动方法为:
SecondActivity.startActivity(MainActivity.this, “data1”, “data2”);
�
网友评论