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