Android 的存储方式

很多知识点,学完用完了就忘记了,忘记了就不是自己的,所以试着写点,让知识形成框架,记录点点滴滴吧

android 的存储方式有5种:

1、SharedPreferences(偏好设置)

   轻量级的;保存的是原始的数据类型;常被用作保存程序的配置信息

保存参数:通过Context.getSharedPreferences()得到一个SharedPreferences;

                   获取一个Editor,对保存的参数进行编辑

                    最后通过Commit(),进行提交

SharedPreferences settings = getSharedPreferences("info",0);
Editor editor = setting.edit();
editor.putString("name",nameEditText.getText().toString())
.putString("pwd",passwordEditText.getText().toString())
.commot();

1)这四种模式代表的含义为:

Context.MODE_PRIVATE    =  0
Context.MODE_APPEND    =  32768
Context.MODE_WORLD_READABLE =  1
Context.MODE_WORLD_WRITEABLE =  2

2)SharedPreferences 获取数据

 SharedPreferences sharedPreferences =getSharedPreferences("mltest", Context.MODE_PRIVATE);
      Editor editor = sharedPreferences.edit();//获取编辑器
      editor.putString("name", "四种模式");
      editor.putInt("age", 4);
      editor.commit();//提交修改

看过很多遍,可是依然不是很透彻,在以后的项目中慢慢理解吧。

参考网址:https://www.cnblogs.com/wushanmanong/p/6273027.html

2、SQLite

2.1在BaseDate文件夹新建 数据库DBOpenHelper

/**
 * 类名:DBOpenHelper
 * 创建人:by
 * 创建日期:2017/9/18 15:35
 * 描述:
 */
public class DBOpenHelper extends SQLiteOpenHelper {
  public DBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
                        int version) {
        super(context, "SqliteTest.db", null, 1);//向系统申请一个SqliteTest.db文件存这个数据库,其中1是数据库版本。
    }
 @Override
    public void onCreate(SQLiteDatabase sqliteDatabase) {
        /*示例demo*/
        String sql=
                "create table if not exists t_user("+
                        "id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"+
                        "username VARCHAR(255),"+
                        "password VARCHAR(255),"+
                        "isDel INTEGER DEFAULT 0"+
                        ")";//如果初次运行,建立一张t_user表,建表的时候注意,自增是AUTOINCREMENT,而不是mysql的AUTO_INCREMENT
        sqliteDatabase.execSQL(sql);
}

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //这里是更新数据库版本时所触发的方法
        Log.i("DEMO","oldVersion=" + oldVersion + ",newVersion" + newVersion);
        if (oldVersion != newVersion) {
            db.execSQL("ALTER TABLE offlineBanner ADD COLUMN adsequence integer;");
            db.execSQL("ALTER TABLE offlineBanner ADD COLUMN isofflinead integer;");
            db.execSQL("DROP TABLE IF EXISTS download_url");
        }
        //执行方法会报异常
        onCreate(db);
    }


}

2.2数据库存储所需变量

public class User {

    private int id;
    private String username;
    private int isDel;

public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public int getIsDel() {
    return isDel;
}
public void setIsDel(int isDel) {
    this.isDel = isDel;
}
}

2.3写数据库的增删改查

public class UserDao {

    private DBOpenHelper dbOpenHelper;// 创建DBOpenHelper对象
    private SQLiteDatabase sqliteDatabase;// 创建SQLiteDatabase对象

    public UserDao(Context context)// 定义构造函数
    {
        dbOpenHelper = new DBOpenHelper(context, null, null, 0);// 初始化DBOpenHelper对象
    }

    // 插入用户数据
    public void dbInsert(String username, String password) {
        sqliteDatabase = dbOpenHelper.getWritableDatabase();// 以读写方法打开数据库,不仅仅是写,getReadableDatabase()是只读
        String sql = "insert into t_user(username,password,isDel) values (?,?,0)";
        // 传递过来的username与password分别按顺序替换上面sql语句的两个?,自动转换类型,下同,不再赘述
        Object bindArgs[] = new Object[]{username, password};
        // 执行这条无返回值的sql语句
        sqliteDatabase.execSQL(sql, bindArgs);
    }

 /*根据时间点查询马歇尔,完成状态 查询 state*/
    public ArrayList<User> dbQueryAllDMTimeState(String state, Timestamp starttime, Timestamp endtime) {
        ArrayList<User> userArrayList = new ArrayList<User>();
        sqliteDatabase = dbOpenHelper.getWritableDatabase();
        String sql = null;
        String [] newState = new String[0];
        if (TextUtils.isEmpty(state) && starttime != null && endtime != null) {
            sql = "select * from t_marshall where  timestamp>'" + starttime + "'  and timestamp<'" + endtime + "' and isDel=0  ";
        } else if (!TextUtils.isEmpty(state)) {
            sql = "select * from t_marshall where state=?  and isDel=0 ";
            newState = new String[]{state};
        } else if (TextUtils.isEmpty(state) && starttime == null && endtime == null) {
            sql = "select * from t_marshall where isDel=0  ";
        }
        Cursor cursor = sqliteDatabase.rawQuery(sql, newState);
        // 游标从头读到尾t
        for (cursor.moveToFirst(); !(cursor.isAfterLast()); cursor.moveToNext()) {
            if (cursor.getInt(cursor.getColumnIndex("isDel")) != 1) {
                User user = new User();
                user.setId(cursor.getInt(cursor.getColumnIndex("id")));
                user.setSampleNumber(cursor.getString(cursor.getColumnIndex("samplenumber")));
                user.setTestNumber(cursor.getString(cursor.getColumnIndex("testnumber")));
                user.setMixkind(cursor.getString(cursor.getColumnIndex("mixkind")));
                user.setGradatype(cursor.getString(cursor.getColumnIndex("gradatype")));
                user.setSpecimentGroup(cursor.getString(cursor.getColumnIndex("specimentgroup")));
                user.setProgectName(cursor.getString(cursor.getColumnIndex("projectname")));
                user.setAuthorize(cursor.getString(cursor.getColumnIndex("authorize")));
                user.setProjectPartuse(cursor.getString(cursor.getColumnIndex("projectpartuse")));
                user.setSpec_code(cursor.getString(cursor.getColumnIndex("spec_code")));

                user.setDs(cursor.getFloat(cursor.getColumnIndex("ds")));
                user.setDf(cursor.getFloat(cursor.getColumnIndex("df")));
                user.setMm(cursor.getFloat(cursor.getColumnIndex("mm")));

                user.setDiameter(cursor.getFloat(cursor.getColumnIndex("diameter")));
             
                userArrayList.add(user);
            }
        }
        return userArrayList;
    }


    /*查询s_savenative表*/
    public ArrayList<User> dbQuerySaveNative() {
        ArrayList<User> userArrayList = new ArrayList<User>();
        sqliteDatabase = dbOpenHelper.getWritableDatabase();
        String sql = "select * from s_savenative where isDel=0";
        //String[] selectionArgs = new String[] { };
        Cursor cursor = sqliteDatabase.rawQuery(sql, null);//selectionArgs
        // 游标从头读到尾
        for (cursor.moveToFirst(); !(cursor.isAfterLast()); cursor.moveToNext()) {
            if (cursor.getInt(cursor.getColumnIndex("isDel")) != 1) {
                User user = new User();
                user.setId(cursor.getInt(cursor.getColumnIndex("id")));
                user.setSampleNumber(cursor.getString(cursor.getColumnIndex("samplenumber")));
                user.setTestNumber(cursor.getString(cursor.getColumnIndex("testnumber")));
                user.setTesttype(cursor.getString(cursor.getColumnIndex("typetest")));
                userArrayList.add(user);
            }
        }
        return userArrayList;
    }

    /*删除s_savenative表中某条样品编号*/
    public void dbDeleteSaveNative(String samplenumber, String testnumber, String typetest) {
        sqliteDatabase = dbOpenHelper.getWritableDatabase();
        String sql = "update s_savenative set isDel=1 where samplenumber=? and testnumber=? and typetest=?";
        Object bindArgs[] = new Object[]{samplenumber, testnumber, typetest};
        sqliteDatabase.execSQL(sql, bindArgs);
    }
}

2.4本地数据库存储

在activity中,private UserDao userDao; 注册组件userDao = new UserDao(this);

2.5直接android 存储数据库,这种方法并不安全,知识为了特定需要。只需要一个在SQLService文件夹下,新建DBUtil类:

package com.csit99.serialport.SQLService;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 类名:DBUtil
 * 创建人:by
 * 创建日期:2017/9/20 14:25
 * 描述:数据库连接类DBUtil
 */
public class DBUtil {

    public static Connection getSQLConnection(String ip, String user, String pwd, String db)
    {
        Connection con = null;
        try
        {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + "192.xx.xx.xx" + ":端口号/" + "Lab_Client_TestDB_JL20170727" + ";charset=utf8", user, pwd);
        } catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        return con;
    }

    public static String QuerySQL()
    {
        String result = "";
        try
        {
            Connection conn = getSQLConnection("192.xx.xx.xx:端口号/Lab_Client_TestDB_JL20170727", "sa", "123", "Lab_Client_TestDB");
            String sql = "select  * from T0800201Collection";
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next())
            {
                String s1 = rs.getString("Test_Code");
                String s2 = rs.getString("Spec_Code");
                result += s1 + "  -  " + s2 + "\n";
                System.out.println(s1 + "  -  " + s2);
            }
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException e)
        {
            e.printStackTrace();
            result += "查询数据异常!" + e.getMessage();
        }
        return result;
    }
    /*插入针入度数据*/
    public  static String AddAPSQL(
            String Serial_ID
            ,String Test_Code
            ,String Spec_Code
            ,float Test_Temp
            ,float Penetration1
            ,float Penetration2
            ,float Penetration3
            ,int Valid_Flag,String Proj_Pos,String Asphalt_Type,String Asphalt_Grade ){
        String result = "";
        try
        {
            Connection conn = getSQLConnection("192.168.3.169:1433/Lab_Client_TestDB_JL20170727", "sa", "123", "Lab_Client_TestDB");
            Statement stmt = conn.createStatement();
            String sql = "insert  into T0800201Collection(Serial_ID,Test_Code,Spec_Code,Test_Temp" +
                    ",Penetration1,Penetration2,Penetration3,Valid_Flag,Proj_Pos,Asphalt_Type,Asphalt_Grade) values (?,?,?,?,?,?,?,?,?,?,?)";
            PreparedStatement ps=conn.prepareStatement(sql);
           // ps.setInt(1,12);
            ps.setString(1,Serial_ID);
            ps.setString(2,Test_Code);
            ps.setString(3,Spec_Code);
            ps.setFloat(4,Test_Temp);
            ps.setFloat(5,Penetration1);
            ps.setFloat(6,Penetration2);
            ps.setFloat(7,Penetration3);
            ps.setFloat(8,Valid_Flag);
            ps.setString(9,Proj_Pos);
            ps.setString(10,Asphalt_Type);
            ps.setString(11,Asphalt_Grade);
            ps.executeUpdate();

         //   ResultSet rs = stmt.executeQuery(sql);
         /*   while (rs.next())
            {
                String s1 = rs.getString("Test_Code");
                String s2 = rs.getString("Spec_Code");
                result += s1 + "  -  " + s2 + "\n";
                System.out.println(s1 + "  -  " + s2);
            }*/
            ps.close();
            stmt.close();
            conn.close();
        } catch (SQLException e)
        {
            e.printStackTrace();
            result += "插入数据异常!" + e.getMessage();
        }
        return result;
    }
    /*插入软化点数据  这个下次在改版的时候,改成一个字符串的,暂时先这样来写*/
    public static String AddSPSQL(String Serial_ID,String Test_Code,String Spec_Code
            ,float Test_Temp
            ,float Soften_Point1,float Soften_Point2,float Soften_Point3,float Soften_Point4,float Soften_Point5
            ,float Soften_Point6,float Soften_Point7,float Soften_Point8,float Soften_Point9,float Soften_Point10
            , float Soften_Point11,float Soften_Point12,float Soften_Point13,float Soften_Point14,float Soften_Point15
            ,float Soften_Point
            ,String Proj_Pos,String Asphalt_Type ,String Asphalt_Grade){
        String result = "";
        try
        {
            Connection conn = getSQLConnection("192.168.3.169:1433/Lab_Client_TestDB_JL20170727", "sa", "123", "Lab_Client_TestDB");
            Statement stmt = conn.createStatement();
            String sql = "insert  into T0800203Collection(Serial_ID,Test_Code,Spec_Code,Test_Temp" +
                    ",Soften_Point1,Soften_Point2,Soften_Point3,Soften_Point4,Soften_Point5" +
                    ",Soften_Point6,Soften_Point7,Soften_Point8,Soften_Point9,Soften_Point10" +
                    ",Soften_Point11,Soften_Point12,Soften_Point13,Soften_Point14,Soften_Point15" +
                    ",Soften_Point,Proj_Pos,Asphalt_Type,Asphalt_Grade) values (?,?,?,?,?,?,?,?,?,?" +
                    ",?,?,?,?,?,?,?,?,?,?,?,?,?)";
            PreparedStatement ps=conn.prepareStatement(sql);
            // ps.setInt(1,12);
            ps.setString(1,Serial_ID);
            ps.setString(2,Test_Code);
            ps.setString(3,Spec_Code);
            ps.setFloat(4,Test_Temp);

            ps.setFloat(5,Soften_Point1);
            ps.setFloat(6,Soften_Point2);
            ps.setFloat(7,Soften_Point3);
            ps.setFloat(8,Soften_Point4);
            ps.setFloat(9,Soften_Point5);

            ps.setFloat(10,Soften_Point6);
            ps.setFloat(11,Soften_Point7);
            ps.setFloat(12,Soften_Point8);
            ps.setFloat(13,Soften_Point9);
            ps.setFloat(14,Soften_Point10);

            ps.setFloat(15,Soften_Point11);
            ps.setFloat(16,Soften_Point12);
            ps.setFloat(17,Soften_Point13);
            ps.setFloat(18,Soften_Point14);
            ps.setFloat(19,Soften_Point15);

            ps.setFloat(20,Soften_Point);
            ps.setString(21,Proj_Pos);
            ps.setString(22,Asphalt_Type);
            ps.setString(23,Asphalt_Grade);

            ps.executeUpdate();

            //   ResultSet rs = stmt.executeQuery(sql);
         /*   while (rs.next())
            {
                String s1 = rs.getString("Test_Code");
                String s2 = rs.getString("Spec_Code");
                result += s1 + "  -  " + s2 + "\n";
                System.out.println(s1 + "  -  " + s2);
            }*/
            ps.close();
            stmt.close();
            conn.close();
        } catch (SQLException e)
        {
            e.printStackTrace();
            result += "插入数据异常!" + e.getMessage();
        }
        return result;
    }

   /* 插入马歇尔数据*/
   public static  String AddDMSQL(String Serial_ID,String Test_Code,int SpecGroupID,float Stab,float Flow
           ,String Proj_Pos,String Mixture_Type,String Gradation_Type ){
       String result = "";
       try{
           Connection conn = getSQLConnection("192.168.3.169:1433/Lab_Client_TestDB_JL20170727", "sa", "123", "Lab_Client_TestDB");
           if (conn==null){
               return result="网络连接失败,保存至本地";
           }
           Statement stmt = conn.createStatement();
           String sql = "insert  into T09002Collection(Serial_ID,Test_Code,SpecGroupID,Stab,Flow,Proj_Pos,Mixture_Type,Gradation_Type) values (?,?,?,?,?,?,?,?)";
           PreparedStatement ps=conn.prepareStatement(sql);
           ps.setString(1,Serial_ID);
           ps.setString(2,Test_Code);
           ps.setFloat(3,SpecGroupID);
           ps.setFloat(4,Stab);
           ps.setFloat(5,Flow);
           ps.setString(6,Proj_Pos);
           ps.setString(7,Mixture_Type);
           ps.setString(8,Gradation_Type);

           ps.executeUpdate();
           ps.close();
           stmt.close();
           conn.close();

         }catch (SQLException e){
        e.printStackTrace();
        result += "插入数据异常!" + e.getMessage();
    }
       return  result;
   }

    /*删除 针入度  软化点  马歇尔*/
    public  static  boolean DeleteSQL(String Test_Code,String testtype){
        boolean result = false;
        try
        {
            Connection conn = getSQLConnection("192.168.3.169:1433/Lab_Client_TestDB_JL20170727", "sa", "123", "Lab_Client_TestDB_JL20170727");
           if (conn==null){
               return false;
           }
            conn.getAutoCommit();
            String sql = null;
            if (testtype.toString().equals("1")){ 
                sql= "delete from T0800201Collection where Test_Code = '"+Test_Code+"'";
            }else if (testtype.toString().equals("2")){
                sql= "delete from T0800203Collection where Test_Code = '"+Test_Code+"'";
            }else if (testtype.toString().equals("3")){
                sql= "delete from T09002Collection where Test_Code = '"+Test_Code+"'";
            }
            Statement stmt = conn.createStatement();
            result=stmt.execute(sql);
            stmt.close();
            conn.close();
            //result=true;
        } catch (SQLException e)
        {
            e.printStackTrace();
            result=false;
        }
        return result;
    }

    public static void main()
    {
        QuerySQL();
        AddAPSQL("","","",(float)0.0,(float)0.0,(float)0.0,(float)0.0,0,"","","");
        //AddAPSQL();
       AddSPSQL("","","", (float) 0.0,(float) 0.0,(float) 0.0,(float) 0.0,(float) 0.0,(float) 0.0
               ,(float) 0.0,(float) 0.0,(float) 0.0,(float) 0.0,(float) 0.0,(float) 0.0,(float) 0.0,(float) 0.0,(float) 0.0
               ,(float) 0.0,(float) 0.0,"","","");
        AddDMSQL("","",0,(float)0.0,(float)0.0,"","","");
        DeleteSQL("","");
    }



}

2.5.2  开启一个子线程,进行网络操作,等待有返回结果,使用handler通知UI

    private void networkTask() {
        Runnable run = new Runnable()
        {
            @Override
            public void run()
            {

                  Connection con = DBUtil.getSQLConnection("192.xx.xx.xx:端口/Lab_Client_TestDB_JL20170727", "sa", "123", "Lab_Client_TestDB");
                Boolean ret= null;
                try {
                    ret = con.getAutoCommit();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                Message msg = new Message();
                msg.what=1000;
                Bundle data = new Bundle();
                data.putString("result", String.valueOf(ret));
                msg.setData(data);
                mHandler.sendMessage(msg);
            }
        };
        new Thread(run).start();
    }

通过Handler传递

    Handler mHandler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            Bundle bundle = msg.getData();
            String result = bundle.getString("result");
            int i=bundle.getInt("int");
            switch (msg.what)
            {
                case 1000:
                 if (result.equals("true")){//如果不为空,说明数据连接  !TextUtils.isEmpty(result)
                     uploadNative();
                 }else {
                     Toast.makeText(HomeActivity.this,"暂时无法与数据库进行连接!",Toast.LENGTH_SHORT).show();
                     return;
                 }
                    break;
                case 1001:
                    if (TextUtils.isEmpty(result)){
                        //添加成功,删除表中数据   不能直接在这删除,暂时先这样写,存至一个list,然后里面是第几个数据
                        userDao.dbDeleteSaveNative(list.get(i).getSampleNumber(), list.get(i).getTestNumber()
                                , list.get(i).getTesttype());
                    }else {
                        Toast.makeText(HomeActivity.this,result.toString(),Toast.LENGTH_SHORT).show();
                    }
                    break;
                case 1002:
                if (result.equals("false")){
                    //Toast.makeText(HomeActivity.this,"无法删除后台数据库数据!",Toast.LENGTH_SHORT).show();
                }
                    break;
                default:
                    Toast.makeText(HomeActivity.this,"添加本地数据库",Toast.LENGTH_LONG).show();
                    break;
            }
        };
    };

通过自定义uploadNative方法,加载数据库方法

 private void uploadNative() {
        try{
       /* list = userDao.dbQuerySaveNative();
        if (list.size() > 0) {   }*/
            //先判断是否有网络
            // 开启一个子线程,进行网络操作,等待有返回结果,使用handler通知UI
            Runnable run = new Runnable() {
                String ret;
                public void run() {
                      /* 先查询没有添加的数据样品编号*/
                    for (int i = 0; i < list.size(); i++) {
                        delete(list.get(i).getTestNumber(),list.get(i).getTesttype());
                        if (list.get(i).getTesttype().equals("1")) {
                            //查询针入度     这里这个查询语句有问题  ,暂时理解为查询的是全部
                            listap = userDao.dbQueryAllAP(list.get(i).getSampleNumber(),list.get(i).getTestNumber(),"");
                           if (listap.size() > 1) {
                                //沥青针入度再次插入网络服务器
                                for (int iap = 1; iap < listap.size(); iap++) {
                                    ret = DBUtil.AddAPSQL(
                                            listap.get(iap).getSampleNumber()
                                            , listap.get(iap).getTestNumber()
                                            , listap.get(iap).getSpec_code()
                                            , Float.valueOf(Double.toString(listap.get(iap).getDt()))
                                            , Float.valueOf(Double.toString(listap.get(iap).getDp1()))
                                            , Float.valueOf(Double.toString(listap.get(iap).getDp2()))
                                            , Float.valueOf(Double.toString(listap.get(iap).getDp3()))
                                            , Integer.valueOf(1)
                                            ,listap.get(iap).getProjectPartuse()
                                            ,listap.get(iap).getTesttype()
                                            ,listap.get(iap).getLqMarkGrade());

                                    Message msg = new Message();
                                    msg.what = 1001;
                                    Bundle data = new Bundle();
                                    data.putString("result", ret);
                                    data.putInt("int",i);
                                    msg.setData(data);
                                    mHandler.sendMessage(msg);
                                }
                           }

                        } else if (list.get(i).getTesttype().equals("2")) {
                            //查询软化点
                            listsp = userDao.dbQueryAllSP(list.get(i).getSampleNumber(),list.get(i).getTestNumber());
                            if (listsp.size() > 0) {
                                //沥青针入度再次插入网络服务器
                                for (int isp = 1; isp < listsp.size(); isp++) {
                                    ret = DBUtil.AddSPSQL(
                                            listsp.get(isp).getSampleNumber()
                                            , listsp.get(isp).getTestNumber()
                                            , listsp.get(isp).getSpec_code()
                                            , Float.valueOf(Double.toString(listsp.get(isp).getDto()))
                                            , Float.valueOf(Double.toString(listsp.get(isp).getsoften_point1())), Float.valueOf(Double.toString(listsp.get(isp).getsoften_point2())),                                                                                  Float.valueOf(Double.toString(listsp.get(isp).getsoften_point16())), listsp.get(isp).getProjectPartuse()
                                            , listsp.get(isp).getLqKind(), listsp.get(isp).getLqMarkGrade());

                                    Message msg = new Message();
                                    msg.what = 1001;
                                    Bundle data = new Bundle();
                                    data.putString("result", ret);
                                    data.putInt("int",i);
                                    msg.setData(data);
                                    mHandler.sendMessage(msg);

                                }
                            }
                        } else if (list.get(i).getTesttype().equals("3")) {
                            //查询马歇尔
                            listdm = userDao.dbQueryAllDM("",list.get(i).getSampleNumber(),list.get(i).getTestNumber());
                            if (listdm.size() > 0) {
                                for (int idm = 1; idm < listdm.size(); idm++) {
                                    ret = DBUtil.AddDMSQL(
                                            listdm.get(idm).getSampleNumber()
                                            , listdm.get(idm).getTestNumber()
                                            , Integer.valueOf(listdm.get(idm).getSpec_code())
                                            , listdm.get(idm).getDs()
                                            , listdm.get(idm).getDf()
                                            , listdm.get(idm).getProjectPartuse()
                                            , listdm.get(idm).getLqKind()
                                            , listdm.get(idm).getLqMarkGrade());
                                    Message msg = new Message();
                                    msg.what = 1001;
                                    Bundle data = new Bundle();
                                    data.putString("result", ret);
                                    data.putInt("int",i);
                                    msg.setData(data);
                                    mHandler.sendMessage(msg);
                                }
                            }
                        }



                    }
                }
            };
       /*添加成功后删除记录表中的记录*/
            new Thread(run).start();
        }catch (Exception e){
             e.printStackTrace();
        }
    }

3、ContentProvider

4、文件存储

5、网络流

猜你喜欢

转载自blog.csdn.net/cryeye123/article/details/81114216