调用服务器功能并在广播接收器android上弹出

时间:2013-07-14 15:17:39

标签: java android eclipse

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

我想要像

这样的功能

1-如果应用已关闭,则会打开应用,调用对话框。单击它将调用serverFunction,如果MainActivity正在运行,请更新其UI。

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

在我的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上下文。如果应用程序打开了,现在我想如何实现上述功能。

1 个答案:

答案 0 :(得分:0)

在你的onReceive这个地方打电话给你的活动:

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

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