Android 您能否通过意图将数据发送到后台运行的活动?

Android 您能否通过意图将数据发送到后台运行的活动?,android,android-intent,android-activity,Android,Android Intent,Android Activity,我正在制作一个简单的在线书店应用程序。我想在两个活动之间共享信息,一个是活动A,它是一个装满书籍的回收视图;另一个是活动B,它在活动A中单击某本书时显示有关该书的更多信息。我想添加一些功能,当您在活动B中单击某本书的作者姓名时,应用程序将把作者姓名发送回活动A,并以只显示所选作者的书籍的方式过滤书籍 过滤数据是一项容易解决的任务。但是,我不知道如何将作者姓名返回到活动A。在这里使用意图是正确的调用吗?该意图不会启动一项全新的活动吗?是否可以将信息发送到后台运行的活动,并以某种方式在onResum

我正在制作一个简单的在线书店应用程序。我想在两个活动之间共享信息,一个是活动A,它是一个装满书籍的回收视图;另一个是活动B,它在活动A中单击某本书时显示有关该书的更多信息。我想添加一些功能,当您在活动B中单击某本书的作者姓名时,应用程序将把作者姓名发送回活动A,并以只显示所选作者的书籍的方式过滤书籍

过滤数据是一项容易解决的任务。但是,我不知道如何将作者姓名返回到活动A。在这里使用意图是正确的调用吗?该意图不会启动一项全新的活动吗?是否可以将信息发送到后台运行的活动,并以某种方式在onResume中接收信息?还有什么我可以用的吗

类似的问题似乎没有帮助,所以我很抱歉重复这一点。 我看不出有任何理由提供任何代码。如果有人要求,我会这样做

编辑:使用startactivityforresult后收到的后续问题的解决方案

上面我没有提到,但我使用了一个recycler视图适配器类从活动a到活动B。这使得我无法将startActivity更改为startactivityforresult

我最初的代码是:

 mContext.startActivity(intent);
为解决此问题,将其更改为以下内容:

((Activity) mContext).startActivityForResult(intent, 1);
活动A至B

Intent i = new Intent(A.this, B.class);
i.putExtra("book_id", 123);
startActivityForResult(i, 1);


// in Activity A

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("auther_name");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //for no result
        }
    }
}//onActivityResult
活动B至A

Intent returnIntent = new Intent();
returnIntent.putExtra("auther_name", "name");
setResult(Activity.RESULT_OK,returnIntent);
finish();

希望这行得通。

显然是一个例子。也许我没有按我的意思说出来。让我编辑我的问题。你做得很好。而startactivityforresult是一条路要走。阅读上面链接的答案。检查这个问题,