如何在 Retrofit Callback 中调用意图?

2024-01-01

我想在由 Retrofit 调用的 WebService 成功回调时显示一个新活动。 而且我很难找到有关如何使用 Retrofit 回调结果启动新活动的示例。 这是一个好方法吗?我需要先清理一些东西吗?

public void validate(View view) {
    RetrofitWebServices.getInstance().webserviceMethod(params,new Callback<MyObject>() {
        @Override
        public void success(MyObject object, Response response) {
            Intent barIntent = new Intent(FooActivity.this, BarActivity.class);
            startActivity(barIntent);
        }

        @Override
        public void failure(RetrofitError error) {
            ...
        }
    });
}

你可以实施Callback弱引用Context

public class MyCallback implements Callback<MyObject> {

    WeakReference<Context> mContextReference;

    public MyCallback(Context context) {
        mContextReference = new WeakReference<Context>(context);
    }

    @Override
    public void success(MyObject arg0, Response arg1) {
        Context context = mContextReference.get();
        if(context != null){
            Intent barIntent = new Intent(FooActivity.this, BarActivity.class);
            context.startActivity(barIntent);
        } else {
            // TODO process context lost
        }
    }

    @Override
    public void failure(RetrofitError arg0) {
        // TODO process error
    }

}  

请记住 - 如果出现以下情况,此解决方案将不起作用Context请求正在进行时发生丢失,但您可能不必担心潜在的内存泄漏,如果您保留对以下内容的强引用,则可能会出现这种情况Context object.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Retrofit Callback 中调用意图? 的相关文章

随机推荐

  • iOS 7 上 UITextview 撤消时出现奇怪的崩溃

    我收到了一堆崩溃报告 它们看起来很像下面的内容 但范围值不同 有时范围不是 0 x 而是 2 x 应用具体信息 由于未捕获的异常 NSRangeException 而终止应用程序 原因 NSBigMutableString substrin
  • Visual Studio 智能感知无法在一个 .ascx 文件中工作

    我在 ASP NET MVC 项目的同一文件夹中有两个 ascx 文件 其中之一智能感知工作正常 在另一种情况下 它根本不起作用 有任何想法吗 这些文件非常相似 顶部有相同的 control 定义 使用VS2008和C 尝试重建您的项目 智
  • 使用 FTPClient Java 检索文件内容

    我使用commons FTPCLIENT 我只想从 ftp 服务器获取文件内容 我不想将其写入临时文件 有什么办法可以做到这一点吗 fileoutputstream 应始终指向本地文件 提前致谢 Use FTPClient retrieve
  • 如何使用 git filter-repo 修改远程历史记录?

    过去我用过git filter branch从我的 git 历史记录中删除文件 接下来 我可以强制推送来更新远程存储库 例如 从本地存储库中删除所有 HTML 文件 然后重写远程文件以反映更改 git filter branch force
  • PowerShell 和全局函数

    为什么下面的代码不起作用 根据这篇文章 全局的用法应该是正确的 http technet microsoft com en us library ff730957 aspx http technet microsoft com en us
  • 显示原始值 Entity Framework 7

    我有一个跟踪添加 删除和修改的审核表 我在实体框架内跟踪这一点 而不是使用数据库触发器 原因有多种 但实际上是因为我们使用进程帐户 并且我想跟踪哪些用户对该记录进行了物理更改 我在 EF 5 中使用过此功能 但我不记得在 EF6 中也可以使
  • 在 C++20 模块中用于打破循环依赖的前向声明不起作用

    我已经在这个问题上绞尽脑汁好几天了 我读了很多关于新的 C 20 模块的文档和帖子 其中这个官方的 http www open std org jtc1 sc22 wg21 docs papers 2019 p1103r3 pdf this
  • SpriteKit 的 SKPhysicsBody 与多边形辅助工具

    我想知道是否有一个工具可以用来在 SpriteKit 中轻松生成复杂的物理体 我想要一个具有多边形形状的基于体积的物理实体 SpriteKit 允许使用该方法创建这样的物体 SKPhysicsBody bodyWithPolygonFrom
  • 在 Kotlin 中将元素添加到列表开头的最佳方法是什么

    如果我有一张这样的清单 var foo mutableListOf John Wayne 如果我想在列表顶部添加一个元素 到目前为止我正在考虑两个选项 First foo add 0 Twyla Second foo mutableList
  • c++构造对象时小括号和大括号有什么区别

    有什么区别 and 构造对象时 我认为 应该只支持initializer list或数组 但是当我在片段下方运行时 我感到困惑 include
  • 'This' 在 subscribe 中未定义

    我有一个订阅语句 我正在尝试调试它 但是当我在 VS Code 中单步执行时 this 在语句内始终未定义 在这种情况下 this dataLoaded 未定义 调试时如何让它不被定义 this router events filter e
  • 使用 sed 命令删除绝对路径

    我有包含以下上下文的文件 例如 abc include home user file txt some text 我需要删除包含以及包含后的完整路径 我使用了以下命令删除包含但没有删除路径 sed i r s include g 文件名 我
  • 如何在 JNI 中将 int 转换为 String(?)?

    我有一个int 数组 我想将它的每个元素转换为String in JNI 最后将它们连接为String 包括逗号 例如 java code int testIntArray new int 1 2 3 String arrayString
  • Anaconda 没有响应

    更新所有软件包后 我无法打开 Anaconda Navigator 当我点击 Anaconda 时 我什么也没得到 它既不响应也不给我错误 先感谢您 Anaconda 或 Miniconda 版本 康达 4 5 12 操作系统 MacOs
  • 使用 Java 8 流的反向映射结构

    给定一个类 public class MyClass public int langId public int sectionId 如果我有一个映射 将 LangId 映射到具有该 LangId 的 MyClass 的所有实例 Map
  • 在 Python 中存储超过 9,000 位的大数字

    我计划在 Python 中使用非常大的数字 但想知道 Python 是否可以处理非常大的数字 这些数字最多有 3 000 个零 而且 带有 3 000 个 0 的 1 需要多少字节 第三个问题 如何使用 Python 将数字作为整数保存到文
  • 如何在 JavaFX 线程之外更新 TableView 项目

    我有一个列出用户朋友的表视图 我需要使用从数据库检索的数据每 5 秒更新一次 这是我使用的代码 Main java private List
  • 解析为 false 的媒体查询的链接标签是否仍会被下载?

    给定以下链接标签
  • 如何将链接本地地址绑定到 ipv6 套接字

    这个问题可以看作是一个姐妹问题前一个 https stackoverflow com questions 2455762 why cant i bind ipv6 socket to a linklocal address我自己发布的 非常
  • 如何在 Retrofit Callback 中调用意图?

    我想在由 Retrofit 调用的 WebService 成功回调时显示一个新活动 而且我很难找到有关如何使用 Retrofit 回调结果启动新活动的示例 这是一个好方法吗 我需要先清理一些东西吗 public void validate