我昨天问了一个与此类似的问题,但我对代码进行了一些更改,现在又遇到了不同的问题。
我有一个切换按钮,可以设置一个带有待处理意图的警报管理器,该意图应在 5 秒后触发。我将其设置为一次性设置,因此我希望消息出现一次(稍后我将针对日期值实施此操作)。
这段代码没有错误,但我似乎无法触发我的意图,然后显示我的 toast 消息。
以下是我在 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>
这是我的切换按钮 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();
}
}