나는 어제와 비슷한 질문을했지만 내 코드가 바뀌었고 다른 문제가 생겼습니다.Alarm Manager는 방아쇠를 당하지 않습니다.
5 초 후에 트리거해야하는 보류중인 의도로 알람 관리자를 설정하는 토글 버튼이 있습니다. 한 번 설정하면됩니다. 나중에 메시지를 한 번 표시하고 싶습니다. 나중에 날짜 값으로 구현할 예정입니다.
이 코드에는 아무런 오류가 없지만 필자의 토스트 메시지를 보여주는 내 의도를 유발하지는 않습니다. 여기
내가 XML의 'DateAlarm'클래스의 활동을 정의하는 방법은 다음과 같습니다
<activity
android:name=".DateAlarm"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.example.flybase2.DateAlarm" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Heres는 알람 매니저 내 토글 버튼 내 내 토글 버튼의 onclick 방법 :
case (R.id.toggleButton1):
Integer dobMonth = setDate.getMonth();
Integer dobYear = setDate.getYear();
Integer dobDate = setDate.getDayOfMonth();
Date set;
set = new Date(dobYear - 1900, dobMonth, dobDate);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, DateAlarm.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
am.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + (5 * 1000), pendingIntent);
break;
그리고 의도의 동작을 유지하는 마지막 'DateAlarm'클래스.
package com.example.flybase2;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.Toast;
public class DateAlarm extends Activity {
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(context, "Appointment is today", Toast.LENGTH_LONG).show();
}
}
는 @ PendingIntent.getActivity –
에 PendingIntent.getService을 변경해보십시오 - C 덕분에 그 의도를 시작하는 것 같습니다. 현재 문제 발생 DateAlarm 클래스에서 클래스를 열면 null 포인터 예외가 발생합니다. – user1352057
컨텍스트를 초기화하지 않았습니다. onCreate()에서'context = this;' –