完成广播接收器的后台活动

时间:2016-10-05 19:50:48

标签: android android-background

我发起了一项新活动" ActivityB"键盘锁定时(ActivityA在键盘锁定前已经背景)。 ActivityB在30秒后超时并且应该关闭自己,所以我在30秒后调用完成,虽然不可见,但在我解锁后我在后台看到2个单独的应用程序/活动。 所以我使用了Intent.ACTION_USER_PRESENT broadcastreceiver来完成activityB,但它仍无法正常工作。

的Manifest.xml

@Override
public void onReceive(Context arg0, Intent intent) {
        if (ActivityB.b != null) {
            ActivityB.b .finish();
        }
}

UnlockReceiver: 公共类UnlockReceiver扩展了BroadcastReceiver {

private Activity b;
onCreate() {
b= this;
}

}

ActivityB:

Intent pushIntent = new Intent(context.getApplicationContext(), ActivityB.class);
                pushIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

ActivityB在我们收到推送时启动:

  <%= check_box_tag 'delivery_charge', "1", true %>

当我解锁设备时,我看到onReceive被称为罚款,但它并没有在后台运行ActivityB。因此,我在背景中看到了2个相同的应用程序

2 个答案:

答案 0 :(得分:0)

您可能对活动a有意图创建活动b;

答案 1 :(得分:0)

我在清单文件中设置了以下属性后修复了该问题 机器人:launchMode = “singleTop”