Activity 知识总结

Activity的四种创建模式

1.standard 模式
这是默认模式,无需设置,每次激活Activity时都会创建Activity实例,并放入任务栈中。相当于入栈,按back键返回到前一个Activity相当于退栈。
2.singleTop 模式
如果在任务的栈顶正好存在该Activity的实例,就重用该实例(会调用实例的 onNewIntent()),否则就会创建新的实例并放入栈顶
3.singleTask 模式
如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的 onNewIntent() )。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移出栈。如果栈中不存在该实例,将会创建新的实例放入栈中。
4.singleInstance 模式
在一个新栈中创建该Activity的实例,并让多个应用共享该栈中的该Activity实例。

Activity保存状态

1.onSaveInstanceState(),onRestoreInstanceState(Bundle)
在onSaveInstanceState保存数据,在onRestoreInstanceState中获取数据
onSaveInstanceState()方法,调用将发生在onPause()或onStop()方法之前
2.在onPause向数据库插入数据

设置全屏

在setContentView之前

// 设置全屏模式
 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
    WindowManager.LayoutParams.FLAG_FULLSCREEN); 
 // 去除标题栏
 requestWindowFeature(Window.FEATURE_NO_TITLE);

改变activity窗口的大小

Window w=getWindow();
 w.setBackgroundDrawableResource(resourceID);//设置窗口背景
WindowManager.LayoutParams layoutParams  = w.getAttributes();
layoutParams.height = 200; 
layoutParams.width= 200;
layoutParams.gravity = Gravity.TOP;
layoutParams.x=50;//距离Gravity属性的距离
layoutParams.y=50;
layoutParams.alpha = 0.5;//0:完全透明,1:不透明
w.setAttributes(layoutParams);

消除横竖屏影响

将Activity的android:configChanges属性为orientation|screenSize或者orientation|screenSize|keyboardHidden

附:
当系统因为内存不足(优先级更高的应用需要内存,请看上图红框)要回收Activity占用的资源时,Activity在执行完onPause()方法后就会被销毁,有些生命周期方法onStop(),onDestory()就不会执行。当再回到此Activity时,是从onCreate方法开始执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在Android开发中承担的主要角色 1、App的入口 你要想用一个app肯定要打开这个app才能使用,主Acti...
    天天one阅读 569评论 0 0
  • 【Android Activity】 什么是 Activity? 四大组件之一,通常一个用户交互界面对应一个 ac...
    Rtia阅读 3,862评论 3 18
  • 1.Activity 说下Activity的生命周期? 答: onStart()和onResume()/onPau...
    KD小帅阅读 1,618评论 0 1
  • 第一章主要讲了以下几个知识点: Activity生命周期 Activity的启动模式 IntentFilter匹配...
    Utte阅读 1,212评论 0 3
  • 你说你爱花 但你却将它们摧折 在头上斜插 这可算不上是种美德 它在你头上盛开 没多久就要枯萎 你对它错误的爱 摧毁...
    戚北林阅读 269评论 0 1