首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取非活动类的onActivityResult (Android)

获取非活动类的onActivityResult (Android)

在Android开发中,onActivityResult()方法用于接收其他活动返回的结果。通常情况下,我们在活动类中重写该方法来处理返回的结果。然而,有时候我们需要在非活动类中获取onActivityResult()的结果,这时可以通过以下步骤实现:

  1. 创建一个接口(Callback):在非活动类中创建一个接口,用于回调返回的结果。接口中定义一个方法,用于接收返回的结果。
代码语言:java
复制
public interface Callback {
    void onResult(int resultCode, Intent data);
}
  1. 在活动类中实现接口:在活动类中实现上述接口,并在onActivityResult()方法中调用接口的方法,将结果传递给非活动类。
代码语言:java
复制
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;
    }
}
  1. 在非活动类中获取结果:在非活动类中实现Callback接口,并将其传递给活动类的实例。然后,在需要获取结果的地方调用接口的方法,即可获取到onActivityResult()的结果。
代码语言:java
复制
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()的结果。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android onActivityResult获取返回值用法

Android 系统会根据隐式意图中设置动作(action)、类别(category)、数据(URI和数据类型)找到最合适组件来处理这个意图。...类型值,这个值要在onActivityResult()方法中和requestCode做判断,由此来判断是启动某个Activity。...(2)onActivityResult()方法中第二个参数就是SecondActivity传回来键,第三个参数就是SecondActivity传回来键对应值。...(requestCode, resultCode, data); } SecondActivity 代码: 这个里面的 RESULT_CODE、intent 分别跟上段代码中 onActivityResult...还有系统自带一些参数,也就是说,如果我们启动 intent 是隐式意图,那么可以用 Activity 中 RESULT_OK 来表示操作已经顺利结束。

1.3K30
  • Android Fragment 妙用 - 优雅地申请权限和处理 onActivityResult

    ---- Fragment 封装权限申请 Android 6.0 动态权限机制,大家再熟悉不过了,如果我们没有对其进行封装,那我们每一次在申请权限时候,大概需要以下几步: 这里我们已拨打电话为例子进行讲解...---- 使用 Fragment 优雅处理 onActivityResult 我们先来看一下没封装之前 onActivityresult 处理方式 我们先来看下正常情况下启动 Activity 和接收回调信息方式...但实际上,这种方式会存在一些局限 onActivityResult 必须在原始 Activity 中才能接收,如果想在 Activity 中调用startActivityForResult,那么调用和接收地方就不在同一个地方了...在 onActivityresult 里面根据 requestCode 找到相应 callback,并进行相应回调。...你呢, Fragment 妙用你还知道哪些,欢迎留言评论。 Android 技术人,一位不羁码农,撩天撩地撩技术,期待你参与。

    2.1K30

    Android-活动最佳实践

    savedInstanceState); Log.d("BaseActivity",getClass().getSimpleName()); } } 在onCreate()方法中获取了当前实例名...然后让BaseActivity成为项目中所有活动,修改三个活动继承结构,继承BaseActivity,因为Base继承了AppCompatActivity,所以三个活动功能不受影响。...现在点击按钮分别进入三个活动, 可以看到把当前活动名打印了出来。...随时随地退出程序 当程序需要按多次Back才可以退出程序 是很不方便,所以需要一个退出程序功能, 只需要一个专门集合对所有的活动进行管理就可以了。...(android.os.Process.myPid()); killProcess()方法用于杀掉一个进程,接收一个进程ID参数,我们可以通过myPid()方法来活动当前程序进程ID, 需要注意

    57010

    探究Android活动小技巧

    探究Android活动小技巧 1.找出当前活动 当我们在查看别人代码时候可能不能第一眼就发现首次活动是哪一个,我们可以通过以下方法来找出当前活动是哪一个: 新建一个BaseActivity...: package com.example.activitytest; import android.os.Bundle; import android.os.PersistableBundle;...onCreate( Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG,"当前...:"+ getClass().getSimpleName()); } } 然后让其他继承这个这样当我们启动程序时候就可以在log日志中找出当前执行是哪一个活动. 2.随时随地退出程序 新建一个...}); } } 3.启动活动最佳方法 SecondActivity添加如下代码: public static void actionStart(Context context

    53720

    如何在Spring容器管理中注入获取 Spring容器中 Bean?

    如何在Spring容器管理中注入/获取 Spring容器中 Bean? 前言:此文仅限新手入行,大佬回避。...我们在使用Spring开发程序时候,Spring提供了很方便对象管理方式,即IOC,而且也提供了非常友好便捷对象注入方式DI, 只要是被Spring容器所管理,就可以使用@Resource或者...@Autowired注解将其他被Spring容器管理注入进来。...什么是被Spring容器管理? 只要是被称之为Bean就是被Spring容器管理。...不了解可以看看小简写这一篇: 将Bean交给Spring容器管理几种方式 在Spring管理中怎么办? 有时候我们就是需要在Spring管理中使用Bean怎么办呢?

    4K40

    获取request,获取response,获取session,获取ServletRequestAttributes,工具

    目录 1 需求 2 工具 1 需求 我们写一个springboot项目,写一个接口,接口没有参数,但是我们想要 获取获取request,获取response,获取session,获取ServletRequestAttributes...,将字符串渲染到客户端,判断接口是否是Ajax异步请求,内容编码,解码 我们可以使用工具,拿到随便一个项目都可以使用 2 工具 import java.io.IOException; import...* 就是在其他页面,你接口参数里面没有 request ,reponse * 你可以使用这个工具获取到 * @author ruoyi */ public class ServletUtils...防止乱码,客户端进行编码,服务器端进行解码 **/ /** * 内容编码 * * @param str 内容 * @return 编码后内容...return StringUtils.EMPTY; } } /** * 内容解码 * @param str 内容 * @return 解码后内容

    2.1K10

    Android:StatFs 获取系统sdcard存储空间信息

    在存储文件时,为了保证有充足存储空间大小,通常需要知道系统内部或者sdcard剩余存储空间大小,这里就需要用到StatFs。 1....SDcard进行读写时候 会用到Environment下面的几个静态方法: 1:getDataDirectory() 获取Androiddata数据目录 2:getDownloadCacheDirectory...() 获取到下载缓存目录 3:getExternalStorageDirectory()     获取到外部存储目录 一般指SDcard 4:getExternalStorageState()          ...获取外部设置的当前状态 一般指SDcard, android系统中对于外部设置状态,比较常用是 MEDIA_MOUNTED(SDcard存在且可以进行读写) MEDIA_MOUNTED_READ_ONLY...5:getRootDirectory()                   获取Android Root路径 6:isExternalStorageEmulated()    返回Boolean值判断外部设置是否有效

    3K50

    Android-活动生命周期

    返回栈 Android活动是可以层叠,每启动一个新活动,就会覆盖在原活动之上, 然后点击Back键就会销毁最上面的活动,下面的活动就会重新显示出来。...Android是用任务(Task)管理活动,一个任务就是一组存放在栈里活动集合, 这个栈也被称作返回栈(Back Stack)。栈是一种后进先出数据结构。...活动状态 每个活动在其生命周期中最多可能有4中状态, 运行状态 处于返回栈栈顶。 暂停状态 不处于栈顶位置,但仍可见,因为并不是每一个活动都占满整个屏幕,比如对话框形式活动。...销毁状态 一个活动从返回栈移除就成销毁状态了,系统最倾向回收这种状态活动活动生存周期 Activity定义了7个回调方法,覆盖了活动生命周期每一个环节。...前台生存期: 活动在onResume()和onPause()之间经历就是前台生存期,这期间活动总是处于运行状态,此时活动是可以和用户进行交互,平时接触最多也就是这个状态下活动

    44430

    Android Activity 活动生命周期

    生命周期 Activity 中定义了7 个回调方法,覆盖了活动生命周期每一个环节。以下7 个方法中除了onRestart()方法,其他都是两两相对。 onCreate()。...这每个活动中我们都重写了这个方法,它会在活动第一次被创建时候调用。你应该在这个方法中完成活动初始化操作,比如说加载布局、绑定事件等。 onStart()。...这个方法在活动由不可见变为可见时候调用,对资源进行加载。 onResume()。这个方法在活动准备好和用户进行交互时候调用。此时活动一定位于返回栈栈顶,并且处于运行状态。...这个方法在系统准备去启动或者恢复另一个活动时候调用。我们通常会在这个方法中将一些消耗CPU 资源释放掉,以及保存一些关键数据,但这个方法执行速度一定要快,不然会影响到新栈顶活动使用。...它和onPause()方法主要区别在于,如果启动活动是一个对话框式活动,那么onPause()方法会得到执行,而onStop()方法并不会执行。 onDestroy()。

    74920

    Android Intent漏洞

    Intent漏洞 1.Intent 类型 显示Intent 显式Intent通过提供目标应用包名称或完全限定组件名来指定哪个应用程序将满足意向。 即需要明确组件名。...onActivityResult()中,基于onActivityResulty()中具体实现产生具体攻击。...用于获取用户选择文件(文档、图象、视频)URI,并在应用中进行处理(例如,将文件发送到服务器中),大多Android/Java无法将Android ContentResolver返回InputSteam...例如,假设应用具有执行某些不安全操作未导出活动以及用作代理导出活动: AndroidManifest.xml 不安全活动启动 如果应用对某些私有数据使用隐式Intent来启动Activity,则可以开始处理相同操作来拦截私有数据。

    55830

    静态静态方法

    C#中可以包含两种方法:静态方法和静态方法。   使用了static 修饰符方法为静态方法,反之荝是非静态方法。   ...静态方琺是①種 特殊成園方琺,它不属纡某一个具体实唎,而是属于本裑。葰以对静态方法不需要首先创建一个哋实例,而是采用名.静态方法格式 。   ...方法笩码只有一份,它们生命周期和是一致哋.实例方法是通过对象名调用,静态方法与关联而不是与对象名关联.   5.哪么在程序狆什么地方可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用数据...对一个无论创踺了多少 个实例,它静态牸段永远都只有一个副本(副本我理解为只有一块内存   静态成员存在于内存,悱静态成员需要实例化才会分配内存,所以静态成员不能访问静态成员..因潙静态成员存在于禸存...,所以悱靜态成员可以直接访问中静态成员.

    1.4K20
    领券