java - 如何获取其他 Activity 的上下文?

标签 java android android-intent

我正在开发闹钟应用程序,但在删除现有闹钟时遇到问题。我必须创建相同的待处理 Intent 来删除 Activity 中的警报,该 Activity 列出了我的应用程序中的所有警报,但它没有按我的预期工作。我想从我用来添加警报的 Activity 中获取“上下文”。

以下是从 ListAddActivity 添加闹钟的代码。

private void addAlarm()
{
    final int ALARM_CODE = this.getAlarmCode(1);
    final int HOUR_OF_DAY = vo.getHour1();
    final int MINUTE = vo.getMinute1();

    AlarmManager alarmManager = (AlarmManager) getApplicationContext()
            .getSystemService(Context.ALARM_SERVICE);

    Calendar calendar = CalendarCreator.getCalendar(HOUR_OF_DAY, MINUTE);
    Intent intent = new Intent(ListAddActivity.this, PushMainActivity.class);

    PendingIntent pendingIntent = PendingIntent.getActivity(
            ListAddActivity.this, ALARM_CODE, intent,
            PendingIntent.FLAG_UPDATE_CURRENT);

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
            calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
            pendingIntent);
}

以下是从 ListMainActivity 中删除计划闹钟的代码。

private void removeAlarm(int number)
{
    final int alarmCode = AlarmCodeCreator.CreateNum(1, clickedPosition, 0);
    System.out.println(alarmCode);
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(getApplicationContext(),
            PushMainActivity.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(
            getApplicationContext(), alarmCode, intent, 
            PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pendingIntent);
}

如您所见,我制作了自己的算法来创建 AlarmCode,因此我可以检索它,并且也具有相同的标志。然而,获得相同的“上下文”是我正在努力解决的问题。

最佳答案

这与上下文无关。您安排的 Intent 是使用 getActivity 创建的。这是一种与使用 getBroadcast 创建的 Intent 不同的 Intent 。您不能使用后者来取消前者。

(编辑以添加代码)

Intent intent = new Intent(
    getApplicationContext(),
    PushMainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(
    ListAddActivity.this,
    ALARM_CODE,
    intent,
    PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pendingIntent);

关于java - 如何获取其他 Activity 的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22270231/

相关文章:

java - Android Room 在 'incoming foreign key list' 中获取 'embedded entity' 中的元素计数?

java - Spring Data JPA Query By Example 与相关实体

java - java中如何将一个元素移动到已排序数组的底部?

android - 插入外部电话时,Android Studio libGDX不显示错误消息

android - StartActivity 和 FragmentTransaction 的区别

android - 为什么我的应用程序在启动照片 Intent 之后但在调用 onActivityResult() 之前崩溃?

java - AmazonS3.getObject(request).getObjectContent() 频繁出现 NoHttpResponseException

android - 错误 aapt : Attribute "font" already defined with incompatible format. 此处定义的原始属性

来自数据库的 Android 填充 Spinner 需要旧条目

java - 启动 Intent "silently"