【发布时间】:2023-12-20 19:18:01
【问题描述】:
我在接收警报服务方面需要帮助。它并不像看起来那么容易,因为我不仅需要变量,还需要将数据传递给 onReceive 这是处于主要活动中的广播接收器。我在主要活动中创建了一个类,因此变量可以保持不变。它不仅是变量
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Calendar c = Calendar.getInstance();
hour=c.get(Calendar.HOUR_OF_DAY);
minute=c.get(Calendar.MINUTE);
Calendar calendar = new GregorianCalendar(1990, 1, 1, hour, minute);
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
String date = sdf.format(calendar.getTime());
String str=date.charAt(0)+""+date.charAt(1)+""+date.charAt(3)+""+date.charAt(4);
minochaDevicePolicyManager.resetPassword(str,0);
}
}
我在主活动 onCreate 中实例化 minochaDevicePolicyManager。这里
minochaDevicePolicyManager=(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
现在这里的任务是创建一个名为 MyBroadcastReceiver 的类,接收器将在其中工作。因为它依赖于 MainActivity。它更像是 mainactivity 的扩展 帮助
【问题讨论】:
-
嘿@codeMagic 很明显,需要的帮助是创建一个名为 MyBroadcastReceiver 的类,接收器将在其中工作。接收方法在那里。它无法工作的原因是它处于主要活动中。而且我不知道如何在不影响其任务的情况下将其从主要活动中取出。如果您尝试将其删除,则会出现许多错误,例如 minochaDevicePolicyAdmin 未解决,即使您得到它,上下文也不存在。
-
一种解决方案是在您的新类中创建一个构造函数并将
minochaDevicePolicyManager传递给它。
标签: java android service broadcastreceiver android-alarms