0

因此,在我的 main中,我Activity使用Intent了启动一些Service对象,该对象响应某些系统事件(当然在后台运行)并向BroadcastReceiver主活动中注册的对象发送适当的消息。我尝试做的是在广播接收器startActivityForResult的方法中。onReceive我有兴趣启动的活动onReceive是其他一些应用程序,它处理我的数据(由服务发送到广播接收器)并返回成功/失败消息。

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

这是想法(我省略了工作正常的不必要的部分和变量):

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
    }
}
4

1 回答 1

0

我尝试做的是在广播接收器的 onReceive 方法中 startActivityForResult 。

不要显示活动,除非用户单击了某项以导致该活动出现。不要在没有事先警告的情况下打断用户正在做的任何其他事情。

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

不支持,抱歉。

于 2013-08-18T11:23:56.177 回答