如何在Android活动结束时清除所有静态变量的值?

时间:2013-06-10 04:49:28

标签: android static-members

我创建了一个应用程序,它接收事务的用户名和其他详细信息,然后在数据库中填充它们。有时,应用程序通过将数据库中的SAME详细信息填充两次作为两个事务来显示奇怪的行为。即使在静态变量中读取了新值但没有存储。

因此,我需要帮助在每个活动结束时刷新所有静态变量的值,以避免覆盖新事务中的先前值。

编辑:

  public class One
      {
  static String var;

      public void onCreate(Bundle savedInstanceState)
    {    
      super.onCreate(savedInstanceState);
              var="blah";
         }
   }

          public class Two
            {
              static String variable = One.var;
               // This is where i am accessing the value of the variables from previous activities.

              //CODE
            }

1 个答案:

答案 0 :(得分:5)

愿这些帮助你......

使用静态变量就像是任何活动中的噩梦,因为它通过活动存储内存。

我认为您可以尝试其他一些内存存储来克服将值从一个活动传递到另一个活动的问题。

在我看来,你可以在SharedPreference中存储值,或者你可以通过意图将值传递给其他需要的活动..

希望这些能帮到你..

修改

Intent in = new Intent(MainActivity.this,SecondActivity.class);

您可以使用多个putExtra()方法放置多个值,然后可以在第二个活动中获取

in.putStringArrayListExtra(String name, ArrayList<String> value);

StartActivity(in);

在第二项活动中:

Intent in = getIntent();

ArrayList<String> Roleids = new ArrayList<String>;

RoleId = in.getStringArrayListExtra(String name, ArrayList<String> value)