我有一个活动A和一个B类(扩展BroadCastReceiver)。从A,我发出这样的警报:
Intent intent = new Intent(getApplicationContext(), TimerAlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Calendar time = Calendar.getInstance();
time.setTimeInMillis(System.currentTimeMillis());
time.add(Calendar.SECOND, 5);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), 3000, pendingIntent);
这个B(名称是TimerAlarmReceiver):
public class TimerAlarmReceiver extends BroadcastReceiver {
public static long TIME;
public static Boolean TimerOn=false;
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm went off", Toast.LENGTH_SHORT).show();
Log.v("Tag", Long.toString(TimeKeeper.Time));
}
public static void setTime(long T)
{ TIME=TimerActivity.DMILLIS;
}
}
我想要做的是从onReceive访问类似静态变量的东西。我尝试在活动中创建一个公共静态成员。只要应用程序运行,日志就会显示正确的设置值。但是,如果我强制退出应用程序,onReceive中的登录将变为0.
那么如何将初始值传递给B?即使应用程序关闭也会保留价值的东西(强制退出)。
答案 0 :(得分:0)
您可以将其作为用于创建PendingIntent
的Intent的附加内容之一传递。然后它会发送到您的BroadcastReceiver
,您可以在那里提取它。
另一种选择是store it somewhere。