1

我有一个应用程序,我必须每 30 分钟取消一次警报/通知。

我想要这样的功能

1-如果应用程序关闭,它会打开应用程序,调用一个对话框。点击它会调用一个 serverFunction,如果 MainActivity 正在运行,更新它的 UI。

2-如果应用程序已经打开,调用一个对话框。单击它会调用一个 serverFunction。由于 MainActivity 可能或可能不在顶部,请更新其 UI 或不。

在我的 MainActivity.class

private void callNotification()
    {
        AlarmManager service = (AlarmManager) getSystemService(Context.ALARM_SERVICE);


        Intent i = new Intent(this, AlarmReceiver.class);
        PendingIntent pending = PendingIntent.getBroadcast(this, 0, i,PendingIntent.FLAG_CANCEL_CURRENT);

        Calendar time = Calendar.getInstance();
        time.setTimeInMillis(System.currentTimeMillis());
        time.add(Calendar.SECOND, Constants.TIME_CONSTANT);

        service.set(AlarmManager.RTC_WAKEUP ,time.getTimeInMillis(), pending);        
    }



    public class AlarmReceiver extends BroadcastReceiver
    {
         @Override
         public void onReceive(final Context context, Intent intent) 
         {

              }
}

这里的问题是,我不能在 onReceive 中放置一个对话框,因为上下文不是 Activity 上下文。如果打开应用程序会怎样,现在我想如何实现上述功能。

4

1 回答 1

0

在您的 onReceive 地方,这可以调用您的活动:

Intent i = new Intent(context, AlertActivity.class);
i.setFlags
startActivity(i);

进入活动后,您可以打开一个对话框。我建议您使用与主要活动不同的活动来处理显示警报,因为从设计的角度来看它是有意义的,而且它也使实施更容易。请记住,您可以使活动看起来像对话框......

于 2013-07-14T16:07:29.030 回答