我正在从应用程序A向应用程序B发送广泛广播,应用程序B具有BroadCastReceiver来处理意图。

现在,我在App B的onReceiveBroadcastReceiver中进行了一些操作,然后我想将结果返回给App A,这样我可以进行回调,并在结果为正数时继续操作。

下面的一些代码。

在应用B中:

public class TripBackupReceiver extends BroadcastReceiver {
@Override
    public void onReceive(Context arg0, Intent arg1) {
        System.out.println("broadcast Received");

        // send result back to Caller Activity
    }
}


在应用A中:

Intent intent = new Intent("a_specified_action_string");
sendBroadcast(intent);


任何人都可以对这个问题有任何解决方案,请给我一些建议。谢谢!!

最佳答案

为什么不(从某种程度上)从应用A收到的Intent发送TripBackupReceiver

就像是:

public class TripBackupReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("broadcast Received");

        // send result back to Caller Activity
        Intent replyIntent = new Intent("a_specified_action_string");
        context.sendBroadcast(replyIntent);
    }
}


您可以在App A的Intent定义中收到此BroadcastReceiver。或者,也可以使用Context.startActivity(Intent)方法在App A中启动活动。

如果这调用了已经在运行的活动,则可能需要实现onNewIntent()



为此,请使用已签名的意图,以防止用户侵入您的意图API。

关于android - 从广播接收器返回结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18867606/

10-11 03:03
查看更多