cod*_*rmx 1 java android alarmmanager android-context
有没有人遇到这样的事情?
这是一个场景:我想构建一个单独的类,从中我可以通过静态方法停止并启动警报.从Activity类中,我想调用我计划构建的这个类的方法,但重点是,当我传递"context"时,我甚至计划将Activity上下文传递给静态方法在我的AlarmManager对象中,Android Studio向我传递了以下信息,这些信息打印在上面的屏幕上,我不得不承认,我不能说明这一点.
我错过了什么?我一直在寻找谷歌,但似乎这种情况不是那么常见.
IMPORTAT:关于上面的图片,我试图只使用上下文(下面的代码),而不使用getApplicationContext(),但它没有运行...
这是代码:
package com.mydomain.myapp;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.SystemClock;
public class AlarmManager {
private static AlarmManager alarm;
private static PendingIntent pIntent;
//start alarm
public static void setAlarm(Context context, int alarmId, long alarmTime) {
Intent startAlarmIntent;
long beginAt = SystemClock.elapsedRealtime() + 60 * 1000;
long interval = 300000; // 5 minutes
alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
startAlarmIntent = new Intent(context, AlarmBroadcastReceiver.class);
pIntent = PendingIntent.getBroadcast(context, alarmId, startAlarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
alarm.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, beginAt, interval, pIntent);
}
//stop alarm
public static void stopAlarm(Context context, int id) {
Intent stopAlarmIntent;
alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
stopAlarmIntent = new Intent(context, AlarmBroadcastReceiver.class);
pIntent = PendingIntent.getBroadcast(context, id, stopAlarmIntent, 0);
alarm.cancel(pIntent);
pIntent.cancel();
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?TKS!
您创建了一个名为的类AlarmManager.这与Android的不同AlarmManager,并且您试图将返回的值转换getSystemService()为您 的值AlarmManager,而不是android.app.AlarmManager.
最简单的解决方案是将类的名称更改为其他名称.
| 归档时间: |
|
| 查看次数: |
473 次 |
| 最近记录: |