2015-02-08 78 views
0

我有一个web应用程序,用户可以在其中共享消息,图像,视频等Facebook。我为此使用java开发了一个android应用程序。我使用PHP(webservice)从mysql数据库中检索数据。如果手机正在连接互联网,它工作正常。如果手机没有互联网连接,我现在正在显示一条错误消息。但是,我想向用户展示当移动设备处于离线模式时已经检索到的消息,如Facebook在离线状态下显示旧消息源。我读到我们需要将数据存储在内部的sqllite数据库中。如果是这样,我该如何轻松实现这一点?如何在离线状态下显示远程mysql数据库的新闻提要android

回答

0

您可以使用嵌入式SQLite对其进行归档,该嵌入式SQLite是android中的嵌入式数据库。你可以从php读取数据,将它写在SQLite上,然后离线阅读。欲了解更多信息,我发现你很容易在教程http://www.vogella.com/tutorials/AndroidSQLite/article.html

好运

+0

谢谢。我想我需要将远程mysql与内部SQLite同步。我怎样才能以简单的方式实现这一点? – 2015-02-08 14:02:38

0

希望这可以帮助你入门..

您需要创建扩展SQLiteOpenHelper在此我们声明字段的一类,表和数据库methods..etc像这样

public class DatabaseHandler extends SQLiteOpenHelper { 


//Database Version 
private static final int DATABASE_VERSION = 1; 

//Database Name 
private static final String DATABASE_NAME = "MyDatabase"; 


//Tables 

private static final String TABLE_USERS = "users"; 


//Columns 

//Table User 
private static final String KEY_USERS_ID = "id"; 
private static final String KEY_USERS_USERNAME = "username"; 
private static final String KEY_USERS_PASSWORD = "password"; 


public DatabaseHandler(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 


@Override 
public void onCreate(SQLiteDatabase db) { 

    //CREATE TABLE USERS 
    String CREATE_TABLE_USERS = "CREATE TABLE " + TABLE_USERS + "(" + 
    KEY_USERS_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
    KEY_USERS_USERNAME + " TEXT, " + 
    KEY_USERS_PASSWORD + " TEXT)"; 

    db.execSQL(CREATE_TABLE_USERS); 


} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

    db.execSQL("DROP TABLE IF EXISTS " + TABLE_USERS); 


    onCreate(db); 


} 

public void addUser(String username, String password) 
{ 

    SQLiteDatabase db = this.getWritableDatabase(); 

    try { 

     db.beginTransaction(); 


      ContentValues values = new ContentValues(); 
      values.put(KEY_USERS_USERNAME, username); 
      values.put(KEY_USERS_PASSWORD, password); 

      db.insert(TABLE_USERS, null, values); 



      db.setTransactionSuccessful(); 
    } 
    catch (SQLException e) {} 
    finally 
    { 
     db.endTransaction(); 
    } 


    db.close(); 


} 

}

正如你可以看到在这个例子,我们AR e创建我们的数据库,创建一个名为USERS的表,其中有一个自动增加的int ID和2个用于用户名和密码的其他列...然后我包括一个将新用户添加到表的方法