在活动之间发送监听器

时间:2018-10-04 07:47:19

标签: android android-activity activity-lifecycle

我在活动(y)内的FragmentStatePagerAdapter内有片段(x),在片段(x)中,我有startActivity到另一个活动(z),如何将来自活动(z)的侦听器或回调发送到活动(y)

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

开始第二项活动以获得结果

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