AlarmManager使布局膨胀

时间:2013-04-23 07:31:08

标签: java android android-intent broadcastreceiver alarmmanager

我的MainActivity中有一个AlarmManager,用于检查网站并在某些条件成立时创建通知。

AlarmManger使用待定意图>广播接收器在一个单独的类中。然后,该广播接收器类调用执行代码的第三个活动来检查网站并处理结果,所有这些都在应用程序未打开时在后台进行。

问题是,当警报事件触发时,它实际上会打开应用程序的主要布局。我没有在MainActivity中的任何地方专门创建或扩展此布局。

我认为当我的广播接收器调用新意图时会出现问题。我认为FLAG_ACTIVITY_NEW_TASK是导致布局打开的原因。我的清单中没有指定任何特殊的启动模式,所以我认为这不是问题所在。

我的问题是,有没有办法让我在广播接收器的后台启动这个意图而不触发布局显示?我可以在清单中添加不同的标志或其他内容吗?

package alert.wow.onlinealert;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class AlarmReceiver1 extends BroadcastReceiver {

@Override
public void onReceive(final Context context, final Intent intent) {
System.out.println("Timed Signal received by AlarmReceiver");
   try {

 Intent intent1 = new Intent(context, Jrequest.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent1);       
    } catch (Exception e) {
    System.out.println(e.toString());

    } 
    }
 }

这里的最终目标是让AlarmReceiver每小时在后台静默运行一次,然后在满足条件时发送通知,应该很少需要打开应用程序本身。

如果有帮助,我会很乐意发布更多代码。

谢谢,   克里斯

1 个答案:

答案 0 :(得分:0)

使用服务代替活动,这是Mark Murphy的工作example

希望这有帮助,Yaron