首页 > 其他分享 >安卓活动生命周期以及数据存储

安卓活动生命周期以及数据存储

时间:2024-02-20 15:22:23浏览次数:26  
标签:存储 生命周期 栈顶 安卓 null bufferedReader editor new 活动

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 复制的网址

 

标签:存储,生命周期,栈顶,安卓,null,bufferedReader,editor,new,活动
From: https://www.cnblogs.com/muzhaodi/p/18023199

相关文章

  • Oracle递归授权view底层依赖表查询权限存储过程
    createorreplaceproceduresys.grant_view_base_table_access(p_accessownerVARCHAR2,p_vownerVARCHAR2,p_vnameVARCHAR2)--RETURNnumberasv_accessownerVARCHAR2(200):=trim(upper(p_accessowner));v_ownerVARCHAR2(200):=trim(upper(p_vowner));v_nameVARCHAR......
  • NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数
    NoSQL数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!【官网地址】:http://www.redisant.cn/nosql介绍直观的用户界面从单一应用程序中同时连接Redis、Memcached、SSDB、LevelDB、RocksDB,你可以快速轻松地创建......
  • MySQL学习之存储过程
    存储过程-介绍介绍存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用。特点......
  • 存储过程分页以及参数拼接sql语句
    1.C#调用存储过程,带参数返回的功能,而且是参数化拼接,这样就可以防止sql注入System.Data.SqlClient.SqlParameter[]parameters={newSystem.Data.SqlClient.SqlParameter("@i",100),......
  • 安卓手机怎么记录恋爱天数?可以记录天数的日程软件
    对于正在享受甜蜜恋爱关系的情侣来说,在一起的每一天都值得纪念。而在手机上记录恋爱天数,不仅能够让两人回顾和分享彼此成长的点滴,而且可以帮助情侣记住和庆祝重要的纪念日,如认识的第一天、第一个约会的日子等,这有助于加深两人之间的情感,营造浪漫氛围。有不少女生表示自己使用的......
  • Elasticsearch不同集群间备份恢复(S3存储)
    S3存储首先都知道需要在ES集群上安装S3插件以及重启集群在MINIO集群创建相应的桶Kibana上注册快照存储库,两个不同的集群需要对接到同一个S3存储库,对接后会自动识别桶里的快照《见上一篇博客》恢复搭建的恢复集群已对接到备份集群对接的MINIO集群了可以看到已自动识别到......
  • 安卓的基本组件
    TextView(文本框组件):主要用来显示文字的一些信息。通过修改TextView的属性可以改变文字的颜色,大小,位置。这个组件较比较简单,容易上手。这里就不过多叙述了。Button(按钮):是程序用于和用户进行交互的一个重要控件。AndroidStudio会对Button中的所有英文字母自动进行大写转换,你可......
  • 在k8S中,Pod生命周期是什么?
    在Kubernetes(k8s)中,Pod是应用的最小可部署单元,它包含了至少一个容器以及存储资源和网络标识符。Pod的生命周期从创建开始,经历一系列阶段直至最终终止或被删除。以下是Pod生命周期的主要阶段:创建(Creation):用户通过创建一个新的Pod对象来请求Kubernetes调度器为Pod分配资源。......
  • 数据安全生命周期
    数据安全生命周期是指数据从创建到销毁的整个过程中所经历的安全管理阶段。一般来说,数据安全生命周期包含以下阶段:1.数据创建在这个阶段,数据首次被创建,并被赋予特定的属性和权限。数据安全措施包括:身份验证和授权:确保只有授权用户才能访问和创建数据。数据完整性:确保数据在......
  • kubernetes对接kadalu使用GlusterFS作为存储
    1.安装glusterfsgluster官网:https://www.gluster.org部署参考:https://cloud-atlas.readthedocs.io/zh-cn/latest/kubernetes/storage/k8s_gluster.html前期需要准备3个节点作为glusterfs集群slave,并且每个节点至少需要个提供1块磁盘。节点名称ip地址磁盘k8s-master0......