• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

java - 安卓可调用

[复制链接]
菜鸟教程小白 发表于 2022-12-9 06:51:35 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

如何实现Callable返回 boolean 值并做点什么?

我需要使用外部线程连接到 FTP 服务器,我不能在主要 Activity 中这样做,我需要返回值来知道它是否已连接;

[主 Activity ]

public class doSomething implements Callable<Boolean> {

   @Override
   public Boolean call() throws Exception {
       // TODO something...
       return value;
   }

}

public void onClick(View view) {
    ExecutorService executor = Executors.newFixedThreadPool(1);
    FutureTask<Boolean> futureTask = new FutureTask<Boolean>(new doSomething());
    executor.execute(futureTask);
}



Best Answer-推荐答案


您可以像在任何其他 Java 程序中一样在 Android 中使用 Callable,即

    ExecutorService executor = Executors.newFixedThreadPool(1);
    final Future<Boolean> result = executor.submit(callable);
    boolean value = result.get()

但请注意,get() 方法会阻塞主线程,不建议这样做。

对于您的用例,您应该使用 AsyncTask反而。例如,

public class FTPConnection extends AsyncTask<Void, Void, Boolean> {

    @Override
    protected boolean doInBackground(Void... params) {
          //Connect to FTP
    }

    @Override
    protected void onPostExecute(boolean connected) {
         //Take action based on result
    }
}

关于java - 安卓可调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21002080/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap