当前位置: 首页 > news >正文

做网站的服务器有哪些徐州seo外包公司

做网站的服务器有哪些,徐州seo外包公司,政府网站建设开发方案,成都服务器租赁Android开发基础(四) 本篇将从Android数据存储方式去理解Android开发。 Android数据存储方式 Android提供了多种数据存储方式。 一、SharedPreferences存储 主要用于存储一些简单的配置信息,如登录账号密码等; 这种存储方式采…

Android开发基础(四)
本篇将从Android数据存储方式去理解Android开发。
Android开发

Android数据存储方式

Android提供了多种数据存储方式。

一、SharedPreferences存储

主要用于存储一些简单的配置信息,如登录账号密码等;
这种存储方式采用Map数据结构,以key-value的方式存储数据,可以更方便地进行读写操作;
数据存储在设备中,采用XML格式;
以下代码是Java编写,Kotlin实际上是相同的。

// 获取SharedPreferences对象  
SharedPreferences sharedPreferences = getSharedPreferences("my_data", MODE_PRIVATE);  // 写入数据  
SharedPreferences.Editor editor = sharedPreferences.edit();  
editor.putString("key1", "value1");  
editor.putInt("key2", 123);  
editor.apply();  // 读取数据  
String value1 = sharedPreferences.getString("key1", null);  
int value2 = sharedPreferences.getInt("key2", 0);

二、文件存储

这是一种比较常见的方式,可以用来存储图片、视频、文本等数据;
在读取和写入文件时,与Java中的I/O程序完全一样,提供了openFileInput()和openFileOutput()方法来读取设备上的文件;
以下代码是Java编写的,Kotlin要注意空值判断,可以参考Android开发基础(二)。

// 创建文件对象  
File file = new File(context.getFilesDir(), "my_file.txt");  // 写入数据  
try {  FileOutputStream outputStream = new FileOutputStream(file);  outputStream.write("Hello World".getBytes());  outputStream.close();  
} catch (IOException e) {  e.printStackTrace();  
}  // 读取数据  
try {  FileInputStream inputStream = new FileInputStream(file);  InputStreamReader inputStreamReader = new InputStreamReader(inputStream);  BufferedReader bufferedReader = new BufferedReader(inputStreamReader);  String line;  while ((line = bufferedReader.readLine()) != null) {  Log.d("File Content", line);  }  inputStream.close();  
} catch (IOException e) {  e.printStackTrace();  
}

三、SQLite数据库存储

SQLite是一种轻量级的数据库,适用于移动设备;
Android系统提供了SQLite数据库引擎,开发者可以使用它来创建和管理数据库;
使用SQLite数据库可以方便地存储、检索和管理数据。

// 创建SQLite数据库  
val db = openOrCreateDatabase("my_database.db", Context.MODE_PRIVATE)  // 创建表  
db.execSQL("CREATE TABLE IF NOT EXISTS my_table (id INTEGER PRIMARY KEY, name TEXT)")  // 插入数据  
val insertStatement = "INSERT INTO my_table (name) VALUES (?)"  
db.beginTransaction()  
try {  val statement = db.compileStatement(insertStatement)  for (name in names) {  statement.bindString(1, name)  statement.executeInsert()  }  db.setTransactionSuccessful()  
} catch (e: Exception) {  e.printStackTrace()  
} finally {  db.endTransaction()  
}  // 查询数据  
val cursor = db.query("my_table", null, null, null, null, null, "name ASC")  
while (cursor.moveToNext()) {  val id = cursor.getInt(cursor.getColumnIndex("id"))  val name = cursor.getString(cursor.getColumnIndex("name"))  Log.d("Data", "ID: $id, Name: $name")  
}  
cursor.close()  // 删除数据  
db.delete("my_table", "name = ?", arrayOf("John"))

四、ContentProvider存储

当一个应用实例继承ContentProvider类并重写该类用于提供数据和存储数据的方法时,就可以向其他应用共享其数据;
通过ContentProvider,应用程序可以访问其他应用程序的数据或提供自己的数据供其他应用程序使用。

// 创建ContentProvider  
public class MyContentProvider extends ContentProvider {  private static final String AUTHORITY = "com.example.myapp.provider";  private static final String PATH = "my_table";  private static final int BASE_URI = 0;  private static final UriMatcher uriMatcher;  static {  uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);  uriMatcher.addURI(AUTHORITY, PATH, BASE_URI);  }  @Override  public boolean onCreate() {  return true;  }  @Override  public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {  SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();  queryBuilder.setTables("my_table");  queryBuilder.setProjectionMap(null); // 设置投影映射  queryBuilder.setSortOrder(sortOrder); // 设置排序方式  Cursor cursor = queryBuilder.query(dbHelper.getReadableDatabase(), projection, selection, selectionArgs, null, null, sortOrder);  return cursor;  }  @Override  public String getType(Uri uri) {  return null;  }  @Override  public Uri insert(Uri uri, ContentValues values) {  long rowId = dbHelper.getWritableDatabase().insert("my_table", null, values);  Uri newUri = Uri.withAppendedPath(uri, rowId + "");  return newUri;  }  @Override  public int delete(Uri uri, String selection, String[] selectionArgs) {  int count = dbHelper.getWritableDatabase().delete("my_table", selection, selectionArgs);  return count;  }  @Override  public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {  int count = dbHelper.getWritableDatabase().update("my_table", values, selection, selectionArgs);  return count;  }  
}

五、网络存储

通过网络接口进行数据的存储和上传等操作,适用于比较重要的事情,如科研、勘探、航空等实时采集到的数据需要马上通过网络传输到数据处理中心进行存储和处理。

import okhttp3.MediaType;  
import okhttp3.OkHttpClient;  
import okhttp3.RequestBody;  
import okhttp3.Request;  
import okhttp3.Response;  public class NetworkStorageExample {  public static void main(String[] args) {  OkHttpClient client = new OkHttpClient();  MediaType mediaType = MediaType.parse("application/json");  RequestBody requestBody = RequestBody.create(mediaType, "{\"key\":\"value\"}"); // 你的JSON数据  Request request = new Request.Builder()  .url("http://example.com/api") // 你的API URL  .post(requestBody)  .build();  try {  Response response = client.newCall(request).execute();  if (response.isSuccessful()) {  // 请求成功处理响应  } else {  // 请求失败处理错误情况  }  } catch (IOException e) {  e.printStackTrace();  }  }  
}
http://www.hkea.cn/news/977201/

相关文章:

  • 城乡建设网站首页百度seo收录软件
  • 永久免费建个人网站培训网站建设
  • 如何使用jq做弹幕网站好用的磁力搜索引擎
  • 南充营销型网站建设高端品牌网站建设
  • 制作小程序和网站的公司搜狗收录提交入口网址
  • 手机站电影基础建站如何提升和优化
  • 江苏 网站备案百度贴吧官网app下载
  • 网站制作三站湖南网站seo公司
  • 简单做任务赚钱网站企业管理培训课程报名
  • 零点研究咨询集团官方网站建设相似图片在线查找
  • 网站开发需要什么软件关键词app
  • 360全景网站建设做了5天游戏推广被抓了
  • 政府网站建设经验典型材料河源今日头条新闻最新
  • 为什么要进行网站备案佛山市人民政府门户网站
  • 摄影网站开发背景百度app交易平台
  • 吉林网站建设石家庄百度快照优化排名
  • 大学生网站开发总结报告app推广接单发布平台
  • 自己做的网站怎么推广seo顾问培训
  • 怎么做业务网站百度搜索提交入口
  • 网页设计网站图片西安百度推广运营公司
  • 济南网站开发推广网络服务包括
  • 五星级酒店网站建设关键词歌词表达的意思
  • 浙江高端建设网站网站关键词如何优化
  • 2017网站开发工程师五合一网站建设
  • 学编程的孩子有什么好处seo网站诊断文档案例
  • 广州中新知识城开发建设网站无锡百姓网推广
  • 宝鸡做网站费用关键词你们懂的
  • wordpress 仿站 教程百度竞价点击一次多少钱
  • 做h的游戏 迅雷下载网站百度推广管家
  • 营销型网站建设的目的外贸网站平台都有哪些 免费的