gpt4 book ai didi

java - BroadCastReceiver 类上的 NullPointerException;

转载 作者:行者123 更新时间:2023-12-03 17:48:18 26 4
gpt4 key购买 nike

我的应用程序包含一个本地人列表,每个本地人都有一个日期。当我单击本地时,我会使用本地信息打开一个新 Activity ,并根据此日期创建警报。警报应在本地提供的日期前 2 天唤醒。这就是我的做法:

当我进入本地Activity时:

private void scheduleAlarm(Date notificationDate) {
Intent intent = new Intent(getApplicationContext(), Receiver.class).putExtra("myString", myString);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), id, intent, PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
alarm.set(AlarmManager.RTC, notificationDate.getTime(), pendingIntent);
}

接收类别:
public class Receiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
String myString = intent.getStringExtra("myString");
if (myString.matches("myString") Toast.makeText(context, "Working", Toast.LENGTH_SHORT).show();
}
}

在 list 中注册:
<receiver android:name=".Receiver" android:enabled="true" >
<intent-filter android:priority="999" >
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>

这通常可以正常工作,但是当我重新启动手机时,一旦我进入主屏幕,我的应用程序就会崩溃。

我在我的应用程序上实现了结构 crashlytics,如果我检查崩溃,我会在我的 Receiver.class 上得到一个 NullPointerException: pattern == null。

我敢打赌,当我重新启动手机时,我失去了额外的 Intent ,并且这条线得到了 NullPointerException:
String myString = intent.getStringExtra("myString");

有没有人有任何线索?我应该如何解决这个崩溃?

最佳答案

作为一般规则,请执行 "myString".matches(myString)而且您不必进行两次检查。

Intent 没有额外内容的原因是因为您没有收到警报事件,而是 BOOT_COMPLETED事件,没有任何额外内容。在启动完成时,您需要重新安排警报、附加功能和所有内容,如 AlarmManager不会通过重新启动持续存在。

关于java - BroadCastReceiver 类上的 NullPointerException;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43594050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com