• 寒假学习进度六


    今天学习内容:安卓活动生命周期以及数据存储

    Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合, 这个栈也被称作返回栈(Back Stack)。栈是一种后进先出的数据结构,在默认情况下,每当我 们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。而每当我们按下Back键或 调用finish() 方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入栈的活动就会 重新处于栈顶的位置。系统总是会显示处于栈顶的活动给用户。

    安卓活动的四种状态:运行状态,暂停状态,停止状态,销毁状态。其他几种状态容易理解,这里简单解释下暂停状态:当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入了暂停状态。例如手机浏览器界面时出现的下载提示。

    活动中调用的方法:

     安卓的文件储存:JavaIO流读取和SharedPreferences对象进行存储。

    代码参考:

    JAVAIO流储存:主要用到了OpenFileOutput()方法

    public void  save(String inputText){
           FileOutputStream fileOutputStream=null;
           BufferedWriter bufferedWriter=null;
           try {
               fileOutputStream=openFileOutput("data", Context.MODE_PRIVATE);
               bufferedWriter=new BufferedWriter(new OutputStreamWriter(fileOutputStream));
               bufferedWriter.write(inputText);
           } catch (FileNotFoundException e) {
               e.printStackTrace();
           } catch (IOException e) {
               e.printStackTrace();
           }finally {
               if(bufferedWriter!=null){
                   try {
                       bufferedWriter.close();
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
               }
           }
       }
    
    }

    JAVAIO流读取:主要用到了OpenFileInput()方法

     public String load(){
            FileInputStream fileInputStream=null;
            BufferedReader bufferedReader=null;
            StringBuilder stringBuilder=new StringBuilder();
            try {
                fileInputStream=openFileInput("data");
                bufferedReader=new BufferedReader(new InputStreamReader(fileInputStream));
                String line="";
                while((line=bufferedReader.readLine())!=null){
                    stringBuilder.append(line);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                if(bufferedReader!=null){
                    try {
                        bufferedReader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return stringBuilder.toString();
        }

    不过相比于JAVAIO流,SharedPreferences对象进行存储读取更为方便,强烈推荐使用。

    列上代码:

    储存:

    SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE).edit();
                    editor.putString("name","小王");
                    editor.putInt("age",18);
                    editor.putBoolean("marry",false);
                    editor.apply();

    读取:

    SharedPreferences preferences=getSharedPreferences("data",MODE_PRIVATE);
                    String name=preferences.getString("name","小李");
                    int age=preferences.getInt("age",19);
                    boolean marry=preferences.getBoolean("marry",true);
                    Log.d("正常活动","姓名:"+name);
                    Log.d("正常活动","年龄:"+age);
                    Log.d("正常活动","婚姻状况:"+marry);

    文件保存目录(第一个是javaio流,第二个是sharedpreferences)

     用git bash 下载源码:

    访问github地址,找到克隆或者下载按钮,复制网址

    打开 git bash窗口,输入命令:git clone 复制的网址

  • 相关阅读:
    html调用js提示方法名 is not defined处理方法
    Amazon Redshift 基于 PostgreSQL 8.0.2
    Data Nodes
    AWS X-Ray
    API Gateway 中控制和管理对 REST API 的访问
    CodeBuild 与 Amazon Virtual Private Cloud 结合使用
    ElastiCache for Redis 缓存策略
    在 AWS X-Ray 控制台中配置采样规则
    什么是 Amazon Kinesis Data Analytics for SQL 应用程序?
    AWS Secrets Manager
  • 原文地址:https://www.cnblogs.com/weixiao1717/p/12271569.html
Copyright © 2020-2023  润新知