在活动之间发送监听器

Posted

技术标签:

【中文标题】在活动之间发送监听器【英文标题】:Send listener between activities 【发布时间】:2019-03-09 13:03:03 【问题描述】:

我在 FragmentStatePagerAdapter 内部有片段 (x),它在活动 (y) 中,在片段 (x) 中我有 startActivity 到另一个活动 (z),如何将监听器或回调从活动 (z) 发送到活动 (y)

【问题讨论】:

你可以试试***.com/questions/28392946/… 【参考方案1】:

你不能。但是您可以使用 startActivityForResult 来启动活动(z)。在activity(z) 活动结束之前,您必须设置一个结果。 然后你可以在activity(y)中处理这个结果。

看看这个 https://developer.android.com/training/basics/intents/result

【讨论】:

【参考方案2】:

开始你的第二个活动以获得结果

static final int PICK_CONTACT_REQUEST = 1;  // The request code
...
private void pickContact() 
    Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
    pickContactIntent.setType(Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers
    startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);

然后在完成第二个活动设置结果意图之前

Intent resultIntent = new Intent()
resultIntent.putExtra("SOME_TAG", SOME RESULT HERE)
activity.setResult(Activity.RESULT_OK, resultIntent);
activity.finish();

然后在第一个活动中,这个意图将在 onActivityResult 方法中处理

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    // Check which request we're responding to
    if (requestCode == PICK_CONTACT_REQUEST) 
        // Make sure the request was successful
        if (resultCode == RESULT_OK) 
            // The user picked a contact.
            // The Intent's data Uri identifies which contact was selected.

            // Do something with the contact here (bigger example below)
        
    

【讨论】:

以上是关于在活动之间发送监听器的主要内容,如果未能解决你的问题,请参考以下文章

如何将结果数据从广播接收器发送到活动

如何使用接口在两个活动之间进行通信

活动到活动回调监听器

Kafka - 在 Linux 和 Windows 之间创建代理侦听器时出错

如何在 html 文件之间交替并在它们之间发送数据?

Android中Intent的相关用法