Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从应用程序类中找到onActivityResult的结果?_Java_Android - Fatal编程技术网

Java 如何从应用程序类中找到onActivityResult的结果?

Java 如何从应用程序类中找到onActivityResult的结果?,java,android,Java,Android,因此,我正在开发一个广告中介库,一个使用我的库的应用程序也可以使用应用程序内计费api,因此在使用我的库的应用程序的某个类中可能有一个startActivityForResult(…),当有startActivityForResult的回调时,我想知道结果。由于当我从onActivityResult获取意图时,在onActivityResumed之前调用了onActivityResult,因此它为空。因此,我需要一种方法来了解应用程序内计费的结果,而无需直接设置侦听器或直接更改代码 这是我的库的

因此,我正在开发一个广告中介库,一个使用我的库的应用程序也可以使用应用程序内计费api,因此在使用我的库的应用程序的某个类中可能有一个
startActivityForResult(…)
,当有
startActivityForResult
的回调时,我想知道结果。由于当我从
onActivityResult
获取意图时,在
onActivityResumed
之前调用了
onActivityResult
,因此它为空。因此,我需要一种方法来了解应用程序内计费的结果,而无需直接设置侦听器或直接更改代码

这是我的库的应用程序类:

public class SubApplication extends Application {
    static final String TAG = "AdMediator";


    @Override
    public void onCreate() {
        super.onCreate();
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityPreResumed(@NonNull Activity activity) {
                Log.d(TAG, "sub application onActivityPreResumed: " + activity.getIntent().getData());

            }

            @Override
            public void onActivityResumed(@NonNull Activity activity) {
                Log.d(TAG, "sub application onActivityResumed: " + activity.getIntent().getDataString());

            }

            @Override
            public void onActivityPaused(@NonNull Activity activity) {
                Log.d(TAG, "sub application onActivityPaused: " + activity.getIntent().getData());
            }

            @Override
            public void onActivityStopped(@NonNull Activity activity) {
                Log.d(TAG, "sub application onActivityStopped: " + activity.getIntent().getData());
            }
        });
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d(TAG, "in MainActivity onActivityResult(" + requestCode + "," + resultCode + "," + data);
    // my library should be notified here
}
使用我的库的活动如下所示:

AdMediator AdMediator=new AdMediator()

在使用我的库的应用程序逻辑中的某个地方是:

activity.startActivityForResult(intent, requestCode);
当对此进行回调时,我需要知道结果,而无需更改使用我的库的应用程序的代码:

public class SubApplication extends Application {
    static final String TAG = "AdMediator";


    @Override
    public void onCreate() {
        super.onCreate();
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityPreResumed(@NonNull Activity activity) {
                Log.d(TAG, "sub application onActivityPreResumed: " + activity.getIntent().getData());

            }

            @Override
            public void onActivityResumed(@NonNull Activity activity) {
                Log.d(TAG, "sub application onActivityResumed: " + activity.getIntent().getDataString());

            }

            @Override
            public void onActivityPaused(@NonNull Activity activity) {
                Log.d(TAG, "sub application onActivityPaused: " + activity.getIntent().getData());
            }

            @Override
            public void onActivityStopped(@NonNull Activity activity) {
                Log.d(TAG, "sub application onActivityStopped: " + activity.getIntent().getData());
            }
        });
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d(TAG, "in MainActivity onActivityResult(" + requestCode + "," + resultCode + "," + data);
    // my library should be notified here
}

启动您自己的
IntermediaryAdMediatorActivity
,它将捕获必要的
onActivityResult
,实际上与使用您的应用程序无关library@Shark你能提供一个链接吗?我搜索中介活动,结果空手而归。没有链接。这意味着,使用你的库的应用程序调用你库的某个方法,而不是
startActivityForResult(YourLibraryActivity,13)
,并且“某个方法”将启动自己的半透明活动,该活动可以启动计费-计费完成后,你的活动将获得
onActivityResult
,阅读它需要的内容,并在将相同的结果转发给启动它的应用程序的活动时自行完成。如果你的库需要在应用程序的
onActivityResult
中得到通知,唯一的方法是启动一个中间人活动,阅读你需要通知的内容,并将结果转发回应用程序。因为在文档中添加诸如“请在每个
onActivityResult
中通知我的库”之类的内容是行不通的。我正在寻找一种不需要使用我的库的开发人员更改其应用程序的方法。