如果必须从不同的上下文访问数据,我应该如何存储我的数据?

时间:2016-09-23 16:33:04

标签: android android-context

我通过ContentProvider查询我的应用程序主要活动中的一堆数据,这些数据存储在ArrayList中。我必须根据用户输入将某些对象传递给其他活动或服务,因此在新环境中重新收集我需要的所有数据实际上是间接和繁重的工作。我不想那样做。我应该如何在应用程序组件之间存储和转发这些对象?

2 个答案:

答案 0 :(得分:0)

如果数据很小,请使用意图机制...如果你有一大堆数据只需要在应用程序中的一个会话,那么请使用singelton ...... 如果您需要持久化数据,请使用sqlite数据库...您还可以检查某种ORM以避免编写SQL代码...

答案 1 :(得分:0)

您可以创建静态类来存储数据

e.g。

public class temp_data {
   public static ArrayList arraylist;
   public static String str="temp string is it";
}

在Mainactivity.class中调用

public class MainActivity extends AppCompatActivity{ 

 @Override
 protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toast.makeText(MainActivity.this, ""+temp_data.str,Toast.LENGTH_SHORT).show();         
}

它将吐司"临时字符串是"

请注意: - - 此数据可以存储,直到应用程序未关闭,如果应用程序关闭,则数据可能会丢失。

  • 并且数据可以访问app活动,服务或reciver只需致电

classname.variablename