BroadcastReceiever在单独的进程

时间:2017-01-17 17:20:42

标签: android android-broadcast android-broadcastreceiver

我有一个正在工作的BroadcastReceiver,但是当我进入最近并滑动应用程序以摆脱它时,接收器停止工作。

所以我想把它添加到清单中以防止接收器死亡

<receiver
    android:name=".CounterReceiver"
    android:enabled="false"
    android:process=":counterreceiver">
    <intent-filter>
        <action android:name="com.example.johnbravado.zionwork.MESSAGE_PROCESSED" />
    </intent-filter>
</receiver>

将接收器发送到其他进程。然而,现在,我的接收器根本不起作用。如果我删除android:process=""行,它会恢复正常工作。

这是正常行为还是我需要发送广播方式让接收方听到它,因为它是在一个单独的过程中?

编辑:

这是发送系统。发件人来自服务

@Override
public void onMessageReceived(final MessageEvent messageEvent) {
    nodeId = messageEvent.getSourceNodeId();
    String incomingPath = messageEvent.getPath();
    int incomingReq = Integer.parseInt(new String(messageEvent.getData()));

    if(incomingPath.equalsIgnoreCase(MyConstants.MSG_COUNTER_REQ_PATH)) {

        Intent broadcastIntent = new Intent();
        broadcastIntent.setAction(MyConstants.BROADCAST_ACTION_RESP);
        //broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT);
        broadcastIntent.putExtra(MyConstants.BROADCAST_DATA_REQ, incomingReq);
        sendBroadcast(broadcastIntent);

    }else if(incomingPath.equalsIgnoreCase(MyConstants.MSG_DEFAULT_PATH)){

    }
}

发送服务清单

<service
    android:name=".MyWearableListenerService"
    android:enabled="false">
    <intent-filter>
        <action android:name="com.google.android.gms.wearable.DATA_CHANGED" />
        <action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" />
        <data
            android:host="*"
            android:scheme="wear" />
    </intent-filter>
</service>

我知道我启用了= false这不是问题,因为我通过包管理器将其设置为true。

0 个答案:

没有答案