0

リッスンするサービスがACTION_BATTERY_CHANGEDあり、この受信データを (アクティビティに) 渡すか、(後でアクティビティで使用するために) 保存できるようにしたいと考えています。Shared Preferences を試しましたが、役に立ちませんでした。

受信したデータを保存または渡すことができるかもしれません。

編集済み

@Override
      public int onStartCommand(Intent intent, int flags, int startId) {
        appPrefs = new AppPreferences(getApplicationContext());

//              /* Broadcast Receiver for battery stats                                               */
        IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);


        BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver(){
            @Override
            public void onReceive(Context context, Intent intent){
                int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
                int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
                int isCharging = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
                if (isCharging==0){

                }
                else{
                    appPrefs.setIsCharging(isCharging);
                    Log.e("inFFFF","FFFF "+appPrefs.getIsCharging()); // here I get my default value, not isCharging value

                }
            }

        };

        registerReceiver(batteryLevelReceiver, batteryLevelFilter);
        return Service.START_STICKY;
      }

AppPrefs ファイル内:

 public void setIsCharging(int text){
             prefsEditor.putInt("isCharging", text);
         }

         public int getIsCharging(){
             return appSharedPrefs.getInt("isCharging", 9);
         }
4

1 に答える 1

1

sharedPreferencesコミットしていないため、データは保存されていません。

public void setIsCharging(int text){
    prefsEditor.putInt("isCharging", text);
    prefsEditor.commit();  //Add this line to commit data in sharedPreferences.
}
于 2013-03-10T11:42:20.830 に答える