在Android中加载活动后更新共享优先级

时间:2016-05-31 02:51:31

标签: android

在此代码中,将在启动此活动后分配共享首选项的值。我希望此代码持续监听共享首选项值的更改,并在更改活动时触发。但执行时的代码会抛出错误说空指针。

感谢瓦拉纳西

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.d_pay);
        con=dpay.this;
        sh=getApplicationContext().getSharedPreferences("CRUZER_PREF", MODE_PRIVATE);



        getActionBar().setHomeButtonEnabled(true);
        getActionBar().setDisplayHomeAsUpEnabled(true);


    }           
     @Override
     public void onResume() {
      super.onResume();
      autoUpdate = new Timer();
      autoUpdate.schedule(new TimerTask() {
       @Override
       public void run() {
        runOnUiThread(new Runnable() {
         public void run() {
          updateHTML();
         }
        });
       }
      }, 0, 40000); // updates each 40 secs
     }

     private void updateHTML(){
         p=sh.getString("p", null);
Log.e("p", p);
      // your logic here
     }

     @Override
     public void onPause() {
      autoUpdate.cancel();
      super.onPause();
     }

1 个答案:

答案 0 :(得分:0)

我认为拥有一个检查首选项的计时器有点浪费。假设您可以访问所有更改SharedPreferences的代码,那么您可以创建一个围绕SharedPreferences的包装类,让我们将其称为PrefHelper。在PrefHelper中,您将拥有一个名为setMySpecificPref(context, your parameters here)的方法。您需要更改该首选项的任何地方,您可以调用该方法。然后,该方法将更改首选项并启动您所需的活动。