我的應用程序包含一個本地人列表,每個地方都有一個日期。當我點擊本地時,我會用本地信息打開一個新的活動,然後根據此日期創建一個警報。警報應在本地提供的日期前2天醒來。這是我如何做它:BroadCastReceiver類上的NullPointerException;
當我進入本地活動:
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();
}
}
在清單中註冊:
<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>
這通常工作正常,但是當我重新啓動手機時,只要進入主屏幕,我的應用就會崩潰。
我在我的應用程序上實現了fabric crashlytics,如果檢查崩潰,我在Receiver.class上得到一個NullPointerException:pattern == null。
我敢打賭,當我重新啓動我的手機,我失去了意向的羣衆演員,這行越來越NullPointerException異常:
String myString = intent.getStringExtra("myString");
有沒有人有任何線索?我應該如何處理這次事故?
如果我檢查myString是否爲空或匹配「」,並且只能以其他方式進行,我不會收到崩潰,所以我確實得到了這個崩潰,因爲當我重新啓動手機時extras爲空。 – Ravers