0

我想在 Android ( 2.3 ) 上的时间、日期、时区更改上使用旧值。

我正在使用广播接收器,例如:

     <receiver android:name=".broadcastreceiver.OnDateTimeChanged">
        <intent-filter>
            <action android:name="android.intent.action.DATE_CHANGED"/>
            <action android:name="android.intent.action.TIME_SET"/>
            <action android:name="android.intent.action.TIMEZONE_CHANGED"/>
        </intent-filter>
    </receiver>

在 java 类中,我想拥有旧值:

public class OnDateTimeChanged extends BroadcastReceiver
{
 @Override
 public void onReceive(Context context, Intent intent)
 {
     // Do some work here
     Log.d("OnDateTimeChanged", "intent action:"+intent.getAction() + ", intent : "+intent);

 }
}

知道如何获取(注销)时间、时区、日期的旧值吗?

谢谢

4

1 回答 1

1

我不知道任何给你旧值的函数,所以我建议你这样做:

当您的应用程序启动时,获取时间、时区和日期的当前值并将其存储在变量中。您可以创建一个更简单的类。然后将该变量存储在您的数据集中,以便能够在任何活动中使用(或根据需要将其解析为额外的)。然后每次值改变时也改变变量。像:

public class OnDateTimeChanged extends BroadcastReceiver
{
 @Override
   public void onReceive(Context context, Intent intent)
   {
      // TimeManager is the name I gave to the class I told you before
      TimeManager timeManager = Provider.dataset().timeManager();

      // ... 

      // Calculate the elapsed time between the two times, if you need
      // (I didn't test but I think this will work)
      Date oldDateTime = timeManager.getDateTime();
      timeManager.setElapsedTime(currentDateTime - oldDateTime);

      // ...

      // And then at the end save the current values again,
      // (in this case: the DateTime)
      timeManager.setDateTime(currentDateTime);
   }
}

这是你需要的吗?希望能帮助到你。

于 2012-12-03T15:20:11.537 回答