私はその後、バックグラウンドで実行されている他のサービスに通知を送信し、私のアラームレシーバクラスの特定のアラームを受信したときに通知を送信しようとしています。サービスに通知を実装する方法は?
私はこのエラーを取得しています:
Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
私はこのトピックに関する多くのことを研究してきたが、私が見つけた解決策のどれも働いていません。
これはアラームレシーバクラス
public void onReceive(Context context, Intent intent)
{
switch(intent.getIntExtra("DosageIdentifier",-1)) {
case 1:
{
for(int i = 0; i < SetMyAlarm.countSeqWithDatabaseList.size(); i++)
{
prescriptionString = SetMyAlarm.prescriptionList.get(i);
myNotification.acceptNotificationString(prescriptionString);
}
break;
}
これは、これは私が取得しています誤りである私のSetMyAlarmサービス
public void acceptNotificationString(String text)
{
sendNotification(text);
}
private void sendNotification(String text) {
try {
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
int flags = PendingIntent.FLAG_UPDATE_CURRENT;
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, flags);
int icon = R.mipmap.ic_launcher;
CharSequence tickerText = "ALERT";
CharSequence contentTitle = "Notification";
CharSequence contentText = text;
Notification notification = new Notification.Builder(this)
.setSmallIcon(icon)
.setTicker(tickerText)
.setContentTitle(contentTitle)
.setContentText(contentText)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.build();
NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
final int NOTIFICATION_ID = 1;
manager.notify(NOTIFICATION_ID, notification);
}
catch (NullPointerException e)
{
e.printStackTrace();
}
}
です:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
at android.content.ContextWrapper.getPackageName(ContextWrapper.java:133)
at android.content.ComponentName.<init>(ComponentName.java:128)
at android.content.Intent.<init>(Intent.java:4449)
at timertesting.kaad.timertesting.SetMyAlarm.sendNotification(SetMyAlarm.java:564)
at timertesting.kaad.timertesting.SetMyAlarm.acceptNotificationString(SetMyAlarm.java:560)
at timertesting.kaad.timertesting.AlarmReceiver.onReceive(AlarmReceiver.java:23)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2725)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1421)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
何か提案がありますか?
acceptNotificationString()は、各クラスの一部ですか?活動、サービス?より多くのコード – W0rmH0le