Android零碎知识点

来源:互联网 发布:钓鱼软件什么意思 编辑:程序博客网 时间:2024/06/01 09:20

1,显式的intent直接在代码中构建并启动

2,隐式的Intent指定一系列actioncategory,由系统去分析找出符合条件的activity并启动。不仅可以启动本程序的activity还可以启动其他程序的activity,使功能共享成为可能。比如使用系统的浏览器打开一个网页
3
IntentputExtra()以键值对的方式存储数据

4startactivityforResult()可以在第二个界面被销毁的时候把数据返回给上一个activity



1oncreate:初始化操作

2onStart:活动由不可见变为可见的时候调用

3onResume:在activities准备好和用户交互的时候调用,此时的activity一定是处于栈顶的,并且处于运行状态、、

4onPause:系统准备去启动一个activity或者恢复一个activity的时候调用。一般会在这个方法中将一些消耗cpu资源的东西释放掉,保存一些重要的信息,但是这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用

5onStop:这个方法在activity完全不可用的时候调用。它和onPause的区别在于:如果要启动的是一个对话框式的界面,那么onPause方法是会被执行的,但是onStop不会被执行

6onDestroy:activity被销毁之前调用

7onRestart:activity由停止状态转为运行状态



启动模式:

1standard模式:每启动一个activity都会创建一个新的实例,不管栈里面是否已经存在该实例

2singleTop模式:如果要启动的activity当前处于栈顶,则不再创建新的activity实例,但是如果要启动的activity不在栈顶,那么还是会创建新的实例

3singleTask模式:在启动一个新的activity时,系统首先检查栈中是否已经存在该activity的实例,如果已经存在则直接使用该实例,并把在该实例上面的activity全部出栈。如果不存在则创建新的实例对象

4singleInstance模式:把一个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。然后在baseActivityonCreate()方法中调用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”);

这样会方便很多,也很方便的知道参数的名称。


原创粉丝点击