美文网首页
Activity 知识总结

Activity 知识总结

作者: 孤独的根号十二 | 来源:发表于2019-01-02 19:06 被阅读23次

    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方法开始执行。

    相关文章

      网友评论

          本文标题:Activity 知识总结

          本文链接:https://www.haomeiwen.com/subject/daftrqtx.html