Android 带广播接收器的onActivityResult

Android 带广播接收器的onActivityResult,android,android-activity,broadcastreceiver,Android,Android Activity,Broadcastreceiver,因此,在我的主要活动中,使用意图,启动一些服务对象,该对象响应某些系统事件(当然是在后台运行),并向主活动中注册的广播接收器发送正确的消息。我尝试做的是在广播接收器中的onReceive方法中startractivityforresult。我想在onReceive中启动的活动是另一个应用程序,它处理我的数据(由服务发送到广播接收器),并返回成功/失败消息 问题是,本应获取成功/失败消息的onActivityResult仅在我打开主活动时运行。我想做的是,独立于我的主要活动是在顶部还是在后台运行(

因此,在我的主要
活动
中,使用
意图
,启动一些
服务
对象,该对象响应某些系统事件(当然是在后台运行),并向主活动中注册的
广播接收器
发送正确的消息。我尝试做的是在广播接收器中的
onReceive
方法中
startractivityforresult
。我想在onReceive中启动的活动是另一个应用程序,它处理我的数据(由服务发送到广播接收器),并返回成功/失败消息

问题是,本应获取成功/失败消息的
onActivityResult
仅在我打开主活动时运行。我想做的是,独立于我的主要活动是在顶部还是在后台运行(不是在堆栈顶部)来获得结果。换句话说,我希望在后台执行
onActivityResult

这是我的想法(我省略了不必要的部分和变量,它们工作得很好):

我试图做的是在广播接收器的onReceive方法中启动tractivityforresult

不要显示活动,除非用户已单击某个内容以显示该活动。在没有事先警告的情况下,不要打断用户正在做的任何事情

我想做的是,独立于我的主要活动是在顶部还是在后台运行(不是在堆栈顶部)来获得结果。换句话说,我希望在后台执行onActivityResult


抱歉,这不受支持。

欢迎使用堆栈溢出!你能在这里发布你已经拥有的代码的相关部分吗?@PetrR.-非常感谢。我添加了一个想法片段。我不是想打断用户。我只需要在后台将数据传递给某个应用程序,它就可以正常发送,但我想使用onActivityResult接收(也是在后台)的消息要求我的主要活动位于顶部。我的问题的全部目的不是打断用户并强迫他参加我的活动。这就是重点。我只想在后台接收结果并显示一个通知。@user2693529:“我没有试图打断用户”——您自己承认,您在不在前台的某个点上从第三方应用程序弹出一个活动。这将中断用户,因为第三方应用程序将显示一个活动。“我只想在后台接收结果并显示通知”--然后停止依赖此第三方活动,并想出其他方法获得结果。我的整个应用程序是第三部分活动的扩展。我必须与它互动,一切都绝对完美,只有一个例外——成功/失败的信息。我可以在
onReceive
方法中显示通知并执行我需要的任何操作,但在用户打开我的活动之前,我无法知道返回消息。我认为,这是相当糟糕的,没有这样的功能。同样,这与干扰用户无关。@user2693529:“我认为,没有这样的功能是很糟糕的”——然后与第三方开发人员讨论,要求他们为您提供一个替代
startActivityForResult()
的方法来完成这项工作(例如,服务)。好的,所以后台处理是不可能的。是否有任何方法可以在
onReceive
方法中自动将此活动置于最前面?我已尝试设置
标记活动\u新建任务
,并将
startActivityForResult
更改为
startActivity
,但仍然必须手动打开活动。现在这是一个分心,但我为自己建立这个应用程序,我希望活动立即弹出没有任何通知。换句话说,在
onReceive
方法中是否有任何方法可以弹出任何活动(无论是否为外部活动)?提前谢谢。
public class MainActivity extends Activity {

    ...

    public BroadcastReceiver br = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(something)) {
                String text = intent.getStringExtra(some_key);

                Intent anotherApp = new Intent(some_configuration);

                startActivityForResult(anotherApp, request_code);
            }
        }
    };

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        // something should happen here

        // however this method fires only when MainActivity is on top
    }
}