1

我的 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 每小时在后台静默运行一次,然后在满足条件时发送通知,应用程序本身应该很少需要打开。

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

谢谢,克里斯

4

1 回答 1

0

使用服务而不是活动,这是Mark Murphy的一个工作示例

希望这会有所帮助,亚龙

于 2013-04-23T07:42:29.310 回答