关于android contentprovider 多线程读取问题
16lz
2021-01-23
/** * @(#) TestActivity.java Created on 2014-3-7 * * */package com..android.app.ui;import java.util.Random;import java.util.UUID;import com..gx.oatos.R;import com..android.business.provider.PreferenceProvider;import com..android.preferences.SysPreferences;import android.app.Activity;import android.os.Bundle;import android.preference.Preference;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;/** * The class TestActivity
* * @author Feng OuYang * @version 1.0 */public class TestActivity extends Activity {private Button button1,button2;/* * (non-Javadoc) * * @see android.app.Activity#onCreate(android.os.Bundle) */@Overrideprotected void onCreate(Bundle savedInstanceState) {setContentView(R.layout.test);super.onCreate(savedInstanceState);button1 = (Button) findViewById(R.id.button1);button2 = (Button) findViewById(R.id.button2);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {new Thread(new Write()).start();}});button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {new Thread(new Read()).start();}});}private class Read implements Runnable{/* (non-Javadoc) * @see java.lang.Runnable#run() */@Overridepublic void run() {for(;;){Log.e("Read", "====================Read==================================1:" + System.currentTimeMillis());new PreferenceProvider(getApplicationContext()).getlist();//try {//Thread.sleep(10);Log.e("Read", "====================Read==================================");//} catch (InterruptedException e) {//e.printStackTrace();//}Log.e("Read", "====================Read==================================2:" + System.currentTimeMillis());}}}private class Write implements Runnable{/* (non-Javadoc) * @see java.lang.Runnable#run() */@Overridepublic void run() {for(;;){Log.e("Write", "====================Write==================================1:" + System.currentTimeMillis());SysPreferences.put(UUID.randomUUID().toString(), "111");//try {//Thread.sleep(10);Log.e("Write", "====================Write==================================");//} catch (InterruptedException e) {//e.printStackTrace();//}Log.e("Write", "====================Write==================================2:" + System.currentTimeMillis());}}}}
ContentProvider :
/** * @(#) ChinaUnicomOatosProvider.java Created on 2014-3-7 * * Copyright © 2013 深圳企业云科技有限公司 版权所有 */package com.qycloud.android.app;import android.content.ContentValues;import android.database.Cursor;import android.net.Uri;import android.util.Log;import com.qycloud.android.provider.OatosProvider;/** * The class ChinaUnicomOatosProvider
* * @author Feng OuYang * @version 1.0 */public class ChinaUnicomOatosProvider extends OatosProvider {/* (non-Javadoc) * @see com.qycloud.android.provider.OatosProvider#query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String) */@Overridepublic Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,String sortOrder) {Log.d("ChinaUnicomOatosProvider query", "thread:" + Thread.currentThread().getName());return super.query(uri, projection, selection, selectionArgs, sortOrder);}/* (non-Javadoc) * @see com.qycloud.android.provider.OatosProvider#insert(android.net.Uri, android.content.ContentValues) */@Overridepublic Uri insert(Uri uri, ContentValues values) {Log.d("ChinaUnicomOatosProvider insert", "thread:" + Thread.currentThread().getName());return super.insert(uri, values);}}
测试结果 :contentprovider 读取写入时会采用一个或者多个线程操作数据库sqlite,activity读和取不用等待
更多相关文章
- 新添的Activity 要在 manifest 中注册 否则界面跳转时会崩掉
- android 启动时会多显示一个闪现屏
- 招聘|北京字节跳动科技有限公司
- 为什么在vs里使用css时会说FILTER非已知的css属性名.放在前端html
- PHP / MySQL - 有时会将空白条目添加到表中
- 当我耗尽一个bigint生成的键时会发生什么?如何处理它?
- HTML CSS Javascript中 id重复时会发生的 情况
- 求助:从库mysqldump 时,mysql 有时会导致重启……
- android手机联网时会有什么系统广播发出呢??