您的位置:首页 > 移动开发 > Android开发

Android零碎知识点

2017-08-15 15:55 267 查看
1,显式的intent直接在代码中构建并启动
2,隐式的Intent指定一系列action和category,由系统去分析找出符合条件的activity并启动。不仅可以启动本程序的activity还可以启动其他程序的activity,使功能共享成为可能。比如使用系统的浏览器打开一个网页

3,Intent的putExtra()以键值对的方式存储数据
4,startactivityforResult()可以在第二个界面被销毁的时候把数据返回给上一个activity

1,oncreate:初始化操作
2,onStart:活动由不可见变为可见的时候调用
3,onResume:在activities准备好和用户交互的时候调用,此时的activity一定是处于栈顶的,并且处于运行状态、、
4,onPause:系统准备去启动一个activity或者恢复一个activity的时候调用。一般会在这个方法中将一些消耗cpu资源的东西释放掉,保存一些重要的信息,但是这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用
5,onStop:这个方法在activity完全不可用的时候调用。它和onPause的区别在于:如果要启动的是一个对话框式的界面,那么onPause方法是会被执行的,但是onStop不会被执行
6,onDestroy:在activity被销毁之前调用
7,onRestart:在activity由停止状态转为运行状态

启动模式:
1,standard模式:每启动一个activity都会创建一个新的实例,不管栈里面是否已经存在该实例
2,singleTop模式:如果要启动的activity当前处于栈顶,则不再创建新的activity实例,但是如果要启动的activity不在栈顶,那么还是会创建新的实例
3,singleTask模式:在启动一个新的activity时,系统首先检查栈中是否已经存在该activity的实例,如果已经存在则直接使用该实例,并把在该实例上面的activity全部出栈。如果不存在则创建新的实例对象
4,singleInstance模式:把一个activity的启动模式设置为这个的时候,系统会创建一个新的栈来承载该activity。可用于不同的程序见共享一个activity实例

一个获取界面对应activity名称的小方法:
创建一个Java类,命名为baseActivity,继承AppCompatActivity,在oncreate方法里面写一个Log.i(“baseActivity”,getClass().getSimpleName());
然后其他所有的activity都继承baseActivity(),这样每跳转到一个新的界面都会log出对应的activity名称。

如何随时随地的退出activity?
建立一个activity管理器,实例化一个list集合,实现addActivity(),removeActivity(),findAllActivity()三个方法,作用分别是往集合中添加activity、从集合中移除activity、结束所有activity。然后在baseActivity中onCreate()方法中调用activity管理器的addActivity()方法,在onDestroy()中调用removeActivity()方法。表示只要一个activity一创建就放入list集合中,一个activity一旦即将被销毁就从集合中移除。以后不管在什么地方想退出程序,只需要调用findAll()就可以把酥油activity移除了。

最佳的activity的写法:
有时候两个activity之间需要传递参数,但是如果这两个activity是两个不同的人写的,那传递的参数名称不知道叫什么,还得去问别人,这时就会很麻烦。所以可以这样写:

Public class SecondActivity extends baseActivity{
Public static void actionStart(Content content,String data1,String data2){
Intent intent = new Intent(content,secondActivity.class);
Intent.putExtra(“param1”,data1);
Intent.putExtra(“param1”,data1);
content.startActivity(intent);
}
}


这样就可以在FirstActivity里面启动secondActivity:

secondActivity.actionStart(firstActivity.this,”data1”,”data2”);


这样会方便很多,也很方便的知道参数的名称。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android