警报服务在安卓系统中无法正常工作

3

我正在尝试在我的安卓应用中设置定时闹钟。以下是设置闹钟服务的代码,请告诉我是否正确,因为它目前无法工作。

Context context=getApplicationContext();
    alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(context, MyBroadcastReceiver.class);
    alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
    alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
            1000 * 60, alarmIntent);

这是在主方法中的代码。现在我创建了一个接收器类。
public class MyBroadcastReceiver  extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Calendar c = Calendar.getInstance();
        hour=c.get(Calendar.HOUR_OF_DAY);
        minute=c.get(Calendar.MINUTE);
        Calendar calendar = new GregorianCalendar(1990, 1, 1, hour, minute);
        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
        String date = sdf.format(calendar.getTime());
        String str=date.charAt(0)+""+date.charAt(1)+""+date.charAt(3)+""+date.charAt(4);
        minochaDevicePolicyManager.resetPassword(str,0);
    }
}

这个不起作用。为什么? 我希望onReceive每分钟运行一次。代码没问题吗?


“主方法”是什么?在Android中这没有任何意义。Android不像Java应用程序那样有一个主方法。具体指的是什么“不起作用”?实际上会发生什么? - Doug Stevenson
不起作用的是str应该得到更新和应用。应用的意思是更改密码。但它没有发生变化。 - user5912746
1个回答

1

您需要在AndroidManifest.xml中添加一个receiver来接收警报。

<manifest ...>
    <application ...>
        ...
        <receiver android:name=".MyBroadcastReceiver" />
    </application>    
</manifest>

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - user5912746
我认为这是由于你的MyBroadcastReceiver位于MainActivity类中引起的。它们应该是单独的文件/类。 - CodeChimp
嗨, 是的,它在MainActivity类中。 我该如何将其放入另一个类中?我尝试将MyBroadcastReceiver放入另一个名为“that only”的类中,但它找不到minochaDevicePolicyManager。 怎么做?就像我需要将这个类链接到主要的一样。 - user5912746
这已经超出了原始的警报接收器问题。将其放在一个单独的文件/类中是正确的,但现在您需要创建一个应用程序级别的单例,以便MainActivity和MyBroadcastReceiver都可以使用它来查看miochaDevicePolicyManager。有许多示例,但一个很好的起点可能是http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/。 - CodeChimp
抱歉,我无法直接提供帮助。尝试使用应用程序类,如果遇到困难,请针对该问题发布另一个问题。 - CodeChimp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接