我正在编写一个包含多个警报的应用程序,我想有一个选项来取消它们。我正在使用AlarmManager和PendingIntent。我的问题是,当我想取消警报时,getBroadcast找不到符合条件的挂起内容。
private void turnOnMorningRemider()
{
long time = System.currentTimeMillis() + 60 * 45;
Intent tmpIntent = new Intent(this, AlarmPopUpDialog.class);
tmpIntent.putExtra(getString(R.string.alarm_time_of_day), AlarmPopUpDialog.REQUEST_CODE_MORNING);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addNextIntent(tmpIntent);
// Gets a PendingIntent containing the entire back stack
morningPendingIntent = stackBuilder.getPendingIntent(AlarmPopUpDialog.REQUEST_CODE_MORNING, PendingIntent.FLAG_ONE_SHOT);
//set the alarm for particular time
alarmManager.set(AlarmManager.RTC_WAKEUP, time, morningPendingIntent);
Toast.makeText(this, "Alarm is on.", Toast.LENGTH_LONG).show();
}
要取消报警,我使用:
private void turnOffMorningReminder()
{
Intent tmpIntent = new Intent(this, AlarmPopUpDialog.class);
PendingIntent pi = PendingIntent.getBroadcast(this, AlarmPopUpDialog.REQUEST_CODE_MORNING,
tmpIntent, PendingIntent.FLAG_NO_CREATE);
if (pi != null)
{
alarmManager.cancel(pi);
Toast.makeText(this, "Alarm is off.", Toast.LENGTH_LONG).show();
}
}
pi变量始终为空,因此警报开始响起。
下一个问题是,当我尝试使用getBroadcast(而不是stack builder)创建PendingIntent时,我的警报从未激活。
morningPendingIntent = PendingIntent.getBroadcast(this, AlarmPopUpDialog.REQUEST_CODE_MORNING, tmpIntent, PendingIntent.FLAG_UPDATE_CURRENT);
使用堆栈生成器是我找不到意图的原因吗?
我觉得自己很笨。我的问题是AlarmPopUpDialog扩展的活动不是BroadcastReceiver类。当我在中间添加了一个扩展BroadcastReceiver的类时,一切都开始工作了。
morningPendingIntent = PendingIntent.getBroadcast(this, AlarmBrodcastReceiver.REQUEST_CODE_MORNING, tmpIntent, PendingIntent.FLAG_UPDATE_CURRENT);
和
public class AlarmBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
Intent i = new Intent(context, AlarmPopUpDialog.class );
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtras(intent);
context.startActivity(i);
}
}
我希望这个答案能帮助下一个可怜的人。
我正在使用安装在本地主机上的wordpress构建一个站点。 出于某种原因,我的post.php页面没有显示帖子缩略图(特色图片)。我已经确定,这是一个问题,timthumb.php这是不正确的定位图像网址。我在网上搜索了几个小时,尝试了许多解决方案,但似乎没有任何效果。 基本问题是我在blog.php文件中的这一行: My functions.php脚本将get_image_url定义如下: 在
所以我检查了gradlew是否在项目目录下,但我找不到它。但我仍然可以运行任务从‘分级项目’窗口。 怎么了?
我正在导入Apache Commons Math和Lemmingapex Trilateration作为处理中的外部jar库。我遵循SO的指示: 如何在处理中添加外部库 处理草图似乎工作正常,但每次运行草图时,我都会将以下错误打印到控制台。 这是处理PDE草图: 我哪里错了?有什么建议吗?
有没有办法解决/抑制错误“在将项目导入 Eclipse 时找不到处理 swagger-codegen-maven-plugin:3.0.23:generate in Eclipse 的市场条目”? 我的pom中的swagger-codegen.xml如下所示, 我看了这个问题并回答了如何解决Spring Data Maven Builds的“生命周期配置未涵盖的插件执行”,但我没有父子pom文件,
问题内容: 我正在使用gradlew进行Java项目。我使用Ubuntu Linux作为操作系统。当我运行“ gradle”时,它将运行并提供信息。但是,当我运行“ gradlew”时,其输出为“未找到命令’gradlew’,您的意思是:软件包’gradle’(universe)gradlew中的命令’gradle’:未找到命令” 我做了研究,有了jdk,并且做了sudo apt-get inst