获取非活动类的onActivityResult (Android)
在Android开发中,onActivityResult()方法用于接收其他活动返回的结果。通常情况下,我们在活动类中重写该方法来处理返回的结果。然而,有时候我们需要在非活动类中获取onActivityResult()的结果,这时可以通过以下步骤实现:
public interface Callback {
void onResult(int resultCode, Intent data);
}
public class MainActivity extends AppCompatActivity {
private Callback callback;
// ...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (callback != null) {
callback.onResult(resultCode, data);
}
}
public void setCallback(Callback callback) {
this.callback = callback;
}
}
public class NonActivityClass implements Callback {
private MainActivity activity;
public NonActivityClass(MainActivity activity) {
this.activity = activity;
this.activity.setCallback(this);
}
@Override
public void onResult(int resultCode, Intent data) {
// 处理返回的结果
}
// 在需要获取结果的地方调用接口的方法
public void getResult() {
// 调用活动类的方法,触发onActivityResult()回调
// 结果将通过onResult()方法返回
activity.startActivityForResult(intent, requestCode);
}
}
这样,通过回调接口的方式,非活动类就可以获取到onActivityResult()的结果了。
这种方法适用于需要在非活动类中处理返回结果的情况,例如在工具类、网络请求类等中获取onActivityResult()的结果。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云