主要是记录一些自己的想法和一些用处的理解。
第二章主要介绍的是活动的使用,以及一些小的功能的使用,比如toast和menu的使用,主要是重新学习了menu的使用:首先在xml中写好menu的item目录(即点击的时候出现的item),然后在
public boolean OnCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.id.xxx);//加载上面的菜单
return true;//这个是为了让菜单显示出来
}
然后在监听onOptionsItemSelected(Menu menu){
//这里面做业务逻辑。
}
这就是菜单的使用方法,先记下 以后有更好的再说。
然后就是activity的启动方法分为显式和隐式;显示就是代码中指定(xxx.this,xxxx.class);隐式就是要对应三个参数,相当于匹配的规则,匹配出manifest 中的action,category,data
manifest中没有注册的可以不进行匹配,相当于默认了 但是隐式启动至少要匹配一个,这里还有个细节,假如一个action中有好几个,但是只要匹配其中的一个就可以了,下面几个同理。
活动数据的传输,但是现在都在用eventbus 但是这个笔记只针对第一行代码,基础嘛,所以还是记录下来怎么操作的。关键方法setForResult(Intent intent, int i);第一个参数是intent,这个不用说了,第二个我现在理解是一个标志,比如现在是给个 1 在第二个activity中
intent.putExtra("date return","xxxxx");//前面的是key 后面的是value
setResult(RESULT_OK,intent);
第一个activity中的方法onActivityResult(int requestCode,int resultCode,Intent data){//第一个参数是看看是谁回的,就是上一个标志 是1 还是几 这里就是区分了这个活动跳向的哪个activity,哪个activity返回的数据,然后做出对应的处理。
switch(requestCode){//这个判断上面说的标志
case 1:
if(resultCode=RESULT_OK){//返回数据的状态,成功了再做一些逻辑。
data.getStringExtra(key);
}假如要再第二个活动退出的时候再返回数据,我们可以调用onBackPressed()方法来解决。重写这个方法来实现业务逻辑。但是我们也可以通过
public boolean onKeyDown(int keyCode, KeyEvent event) 方法,好处就是这里可以塞其他的操作,对对应keyEvent来判断进行一些业务逻辑。
if(keyCode == KeyEvent.KEYCODE_BACK){
//这里实现业务逻辑 }
后面就是生命周期和启动模式:生命周期没什么好记下来的,基本上每本书上都有分为七个注意顺序就行了,但是涉及到两个活动那么是怎么切换的,
A调到B activity A的先pause B的Create Start Resume,A的stop 所以尽量在A的Stop中做业务逻辑,这样不影响B的启动时间。这里还有个有趣的事情,关于闪退的时候是否调用destrory这个方法,你闪退我在destory中继续开启这个APP 哎嘿,多牛逼实则不行,根本不走。
启动模式分为四种:具体看这个文章 http://blog.csdn.net/mynameishuangshuai/article/details/51491074 写的挺详细的。有个问题就是两个activity互相切换的时候内存会噌噌噌的网上涨,这个时候要就关系到启动模式了,这样设计成singleTask 就好了。
最后的最后才是重点 才是开发中很好用的两个类 一个是基类BaseActivity 基本上任何APP都会有这个类,还有一个就是记录activity的类的,这两个开发会很常用到的。