私は活動とサービスを持っています。サービスで時々更新されているサービス整数への参照を取得したいと思います。私の問題は、アクティビティで、最初に宣言された値 (たとえば 0) の整数のみを取得することです。
私の主な目標は、プログラムを開始するたびにサービスの更新された価値を知ることです。
主な活動:
if(Service.doesCounter>0){
//do something
//in this state Service.doesCounter always is 0(checked by log)
}
サービス:
public static int doesCounter=0; // declared after class as class memeber
//code where I start my method does();
.....
public void does(){
doesCounter++;
Log.e("cccccc","Service Counter "+doesCounter); // everything ok, value is changing as suppose to.
}
編集
私の共有設定クラス:
public class AppPreferences extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
private static final String APP_SHARED_PREFS = "com.aydabtu.BroadcastSMS_preferences"; // Name of the file -.xml
private SharedPreferences appSharedPrefs;
private Editor prefsEditor;
public AppPreferences(Context context)
{
this.appSharedPrefs = context.getSharedPreferences(APP_SHARED_PREFS, Activity.MODE_PRIVATE);
this.prefsEditor = appSharedPrefs.edit();
}
public boolean getAnything() {
return appSharedPrefs.getBoolean("Anything", false);
}
public void setAnything(Boolean text) {
prefsEditor.putBoolean("Anything", text);
prefsEditor.commit();
}
次に、メイン アクティビティから:
public class MainActivity extends Activity {
protected AppPreferences appPrefs;
appPrefs = new AppPreferences(getApplicationContext());
appPrefs.setAnything(fasle);
次にサービスから:
appPrefs = new AppPreferences(getApplicationContext());
これが発生すると、以前に行ったすべての変更がリセットされます。サービスと MainActivity で同じ設定を使用するにはどうすればよいですか? どうにかして AppPrefs クラスを静的にすることができますか?