通过意图传递数据或在需要时查询数据库是否更好?

时间:2013-08-26 08:58:08

标签: android sql database android-intent

我只是想知道在android中的几个活动中处理数据的更好方法是什么。

说我有两个活动,A和B,持有一些观点。首先,我从SQL数据库加载一些数据并在A中膨胀视图。现在,我想启动活动B,它使用与A相同的数据集。

通过Intent(putExtra())传递数据然后给视图充气是否更好?或者最好再次查询数据库然后膨胀​​。

我不确定,因为这两种方法似乎都有其缺点:

  • 查询数据库需要更多时间/更多资源
  • 将额外数据放入意图会使其更加复杂,因为放置和获取数据(特别是在处理更多活动时)

有人可以就什么是最佳做法给我一些建议吗?

2 个答案:

答案 0 :(得分:2)

与DB Query相比,使用Intent。

另一种方法是,使用一个公共类来保存你的数据。

答案 1 :(得分:0)

有各种方式传递和获取数据。使用Intent比使用DB查询更有用。

但另一种有用的方式是共享偏好。您可以通过它创建,编辑,删除数据以及从任何活动中获取数据。

创建或修改共享偏好设置:

String share_pref_file = "your_file_name";      
SharedPreferences prefs1 = getSharedPreferences(
        share_pref_time_file, Context.MODE_PRIVATE);
SharedPreferences.Editor editor1 = prefs1.edit();
editor1.putString("your_data", data); //data is your variable
editor1.commit();

要获取数据:

String share_pref_file = "your_file_name";
SharedPreferences prefs = getSharedPreferences(share_pref_file,
    Context.MODE_PRIVATE);
String strJson = prefs.getString("your_data", "");

删除:

String share_pref_file = "your_file_name";
SharedPreferences prefs1 = getSharedPreferences(
            share_pref_file, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs1.edit();
    editor.remove(share_pref_file);
    editor.clear();
    editor.commit();