广播接收器在一个单独的过程中

时间:2016-03-14 15:35:51

标签: android service android-broadcastreceiver

您好我开发了一个Android应用程序。它包含具有单独进程的服务。我希望从我的服务到MainActivity进行通信。如果我不使用单独的进程,它可以工作,但如果进行单独的过程,MainActivity不会接收广播。 在这里,清单:

application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>

    <receiver android:name=".BluetoothLeService$MyReceiver"/>

    <service android:name=".BluetoothLeService"
        android:enabled="true"
        android:exported="true"
        android:process=":service"/>

这是在我的服务中:

    public void sendResult(String message) {
    Intent intent = new Intent("ui");
    if(message != null)
        intent.putExtra("updateui", message);
    broadcaster.sendBroadcast(intent);
}

MainActivity:

    @Override
protected void onStart() {
    super.onStart();
    LocalBroadcastManager.getInstance(this).registerReceiver((receiver),
            new IntentFilter("ui")
    );
}

@Override
protected void onStop() {
    LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver);
    super.onStop();
}
...
......

receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String s = intent.getStringExtra("updateui");
            Log.d("stringa s ",s);
            if(s.equals("1")) set_color();
    }
}

我如何为我的单独进程编辑代码??? 谢谢

已解决:我已删除localbroadcast !!

0 个答案:

没有答案