Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:存储和排列的最佳方式,在应用程序关闭时清除_Android_Arrays_Sqlite_Internal Storage - Fatal编程技术网

Android:存储和排列的最佳方式,在应用程序关闭时清除

Android:存储和排列的最佳方式,在应用程序关闭时清除,android,arrays,sqlite,internal-storage,Android,Arrays,Sqlite,Internal Storage,在android应用程序中存储数组{devicename,macaddress,updated},然后在用户关闭应用程序后处理数据的最佳方式是什么 更新:关于存储,我的意思是使用SQLite、内部存储(创建文件,然后删除)等。是否有任何最佳做法可以做到这一点,询问的原因是我每次都需要访问数据,而不是调用API 我只是问,因为我对Android开发还不熟悉。数组或类似地图的对象的私有实例似乎正是您所需要的。根据您的问题和上面的评论,我认为没有理由涉及非易失性存储或奇特的映射对象 从中借用一点,并假

在android应用程序中存储数组{devicename,macaddress,updated},然后在用户关闭应用程序后处理数据的最佳方式是什么

更新:关于存储,我的意思是使用SQLite、内部存储(创建文件,然后删除)等。是否有任何最佳做法可以做到这一点,询问的原因是我每次都需要访问数据,而不是调用API


我只是问,因为我对Android开发还不熟悉。

数组或类似地图的对象的私有实例似乎正是您所需要的。根据您的问题和上面的评论,我认为没有理由涉及非易失性存储或奇特的映射对象

从中借用一点,并假设您正在应用程序中实现一个活动,您的代码可能如下所示:

。。。
导入java.util.HashMap;
导入java.util.Map;
....
公共类ExampleActivity扩展了活动{
公共静态最终字符串TAG=“ExampleActivity”;
//创建一个枚举来保存键值(普通的旧字符串也可以)
私有枚举密钥{
姓名,MAC,已更新
};
//声明您的数据结构
私人地图myCachedApiData;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//正在创建活动。
//在onCreate()中初始化数据
myCachedApiData=newhashmap();
//从API中检索初始数据
//如果需要一段时间,您可能希望在另一个线程上执行此操作
...
//把数据放在地图上
myCachedApiData.put(ApiKey.NAME,deviceNameStr);
myCachedApiData.put(ApiKey.MAC,macAddressStr);
myCachedApiData.put(ApiKey.UPDATED,updatedStr);
}
@凌驾
受保护的void onStart(){
super.onStart();
//活动即将变得可见,让我们来看看
//打印(访问)一些缓存的API数据
//每次用户查看我们的活动时
Log.d(标记“macaddr is:”+myCachedApiData.get(ApiKey.MAC));
}
@凌驾
受保护的void onResume(){
super.onResume();
//活动已变得可见(现在已“恢复”)。
}
@凌驾
受保护的void onPause(){
super.onPause();
//另一个活动正在聚焦(此活动即将“暂停”)。
}
@凌驾
受保护的void onStop(){
super.onStop();
//活动不再可见(现在已“停止”)
}
@凌驾
受保护的空onDestroy(){
super.ondestory();
//该活动即将被销毁。
//无需明确清除我们的地图,当我们的
//活动被破坏
//myCachedApiData.clear();
}
}

我将其序列化为字符串(使用带有分隔符char的join方法)。然后使用split方法反序列化字符串并获取数组。引用“user closes the app”是指何时调用
onStop()
还是何时调用
onDestroy()
或其他什么?使用JsonArray以成对存储的方式存储名称值我是指使用SQLite、内部存储等,听起来你只想在应用程序运行时保存数据。你为什么要写“磁盘”呢?正如@user3464143所提到的,类数组的私有实例似乎正是您想要的——它可以在启动时创建和初始化,然后当您的活动/服务/广播接收器最终被破坏时,它就会消失。awm129,干杯,我来看看这个。谢谢你的建议。