是否可以在 Service 类中使用 AsyncTask?

2024-03-01

一切都在标题中。

官方文件中指出Note that services, like other application objects, run in the main thread of their hosting process而AsyncTask只有在UIThread中执行时才有效。

那么是否可以在Service类中使用AsyncTask呢?

我正在尝试这样做,但我总是遇到同样的错误

05-01 18:09:25.487: ERROR/JavaBinder(270): java.lang.ExceptionInInitializerError

...

05-01 18:09:25.487: ERROR/JavaBinder(270): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

我做错了什么还是这根本不可能?

这是我的服务类的代码

package com.eip.core;

import android.app.Service;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;

public class NetworkService extends Service {


    private final INetwork.Stub mBinder = new INetwork.Stub() {

        @Override
        public int doConnect(String addr, int port) throws RemoteException {
            new ConnectTask().execute("test42");
            return 0;
        }
    };

    @Override
    public IBinder onBind(Intent arg0) {
        return mBinder;
    }

    private class ConnectTask extends AsyncTask<String, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            Log.i("OnPreExecute()", "");
        }

        @Override
        protected Void doInBackground(String... arg0) {
            Log.i("doInBackground()", "");
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            Log.i("OnPostExecute()", "");
        }

    }
}

还请务必查看 IntentService。如果该类足以满足您的需求,它将处理使该模式正常工作所涉及的许多小细节。

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

是否可以在 Service 类中使用 AsyncTask? 的相关文章

  • IntentService、Service 或 AsyncTask

    实现这一点的最佳方法是什么 我有一个 Android 应用程序 它将使用我的 python 服务器来允许两部手机之间进行轮流通信 回合意味着他们在一轮开始之前不能互相交谈 一旦他们发送一条消息 他们就不能发送另一条消息 直到对方做出回应 然
  • Android 从键盘读取

    我的登录屏幕根本没有文本字段 当用户使用 RFID 扫描仪扫描他的 id 令牌时 我会得到一个 8 个字符长的字符串 其原理与使用键盘相同 只是更快 我希望我的登录活动在用户扫描其令牌时而不是之前执行 有一个聪明的方法来实现这个吗 我不能有
  • 错误 libGL.so:无法使用 Android 模拟器打开共享对象文件

    我试图在 Ubuntu 12 04 64 位 中运行 android 模拟器 但是 我收到以下错误 Starting emulator for AVD emulatr Failed to load libGL so error libGL
  • 当编辑文本获得焦点时更改边框颜色

    我想知道当编辑文本聚焦时如何更改它的边框颜色 目前它看起来像这样 我尝试过在SDK中检查源图片 但我无法理解它 我也尝试过使用xml 但无法仅更改边框颜色 如果我找到源图片 我可以在 Photoshop 中编辑以更改颜色 有什么关于如何执行
  • 取消通知

    我使用Onesignal推送通知 需要取消所有onPause和onResume的通知 NotificationManager notificationManager NotificationManager getApplicationCon
  • 从 Handler.obtainMessage() 获取什么参数

    我正在使用线程来执行一些 BT 任务 我正在尝试向 UI 线程发送消息 以便我可以基于我的 BT 线程执行 UI 工作 为此 我使用处理程序 但我不知道如何检索发送到处理程序的数据 要发送数据 我使用 handler obtainMessa
  • 使用 DiffUtil 在 RecyclerView 上添加拖放

    我有一个从房间数据库更新的列表 我从 Room 收到更新的数据作为新列表 然后将其传递给列表适配器 https developer android com reference androidx recyclerview widget Lis
  • Android 26 (O) 通知不显示操作图标 [重复]

    这个问题在这里已经有答案了 随着 Android 26 O 引入通知渠道 我一直在调查 Google 提供的com example android notificationchannels 这个示例按预期工作 直到我尝试添加Action到示
  • 活动组代码示例

    有人可以给我一些使用活动组的示例代码吗 我的应用程序中有一些按钮 我想将活动应用于这些按钮 目前我正在使用 setVisibility 但我被告知活动组将是更好的选择 这是另一个ActivityGroup 示例项目 http richipa
  • Android 发布到 facebook 墙,stream.publish 几天来就中断了

    我有很多使用 FB android sdk 发布的应用程序 github com facebook facebook android sdk 我所有使用 FB 的应用程序几天后就停止工作了 这必然是 FB 方面的更改或错误 因为我的应用程序
  • 在尝试使用 GPS 之前如何检查 GPS 是否已启用

    我有以下代码 但效果不好 因为有时 GPS 需要很长时间 我该如何执行以下操作 检查GPS是否启用 如果启用了 GPS 请使用 GPS 否则请使用网络提供商 如果 GPS 时间超过 30 秒 请使用网络 我可以使用时间或 Thread sl
  • InAppMessage 一旦显示就会自动消失

    您好 我最近将 InAppMessaging 添加到我的项目中 这似乎很容易集成 但对我来说并没有按预期工作 首先 我将其添加到 build gradle 中 implementation com google firebase fireb
  • 确定视图是否在屏幕上 - Android

    我对这个有点困惑 首先也是最重要的是 以下链接很有用 但是我提出了一些可见性问题 链接 检查视图可见性 https stackoverflow com questions 4628800 android how to check if a
  • 使用单独的线程在java中读取和写入文件

    我创建了两个线程并修改了 run 函数 以便一个线程读取一行 另一个线程将同一行写入新文件 这种情况会发生直到整个文件被复制为止 我遇到的问题是 即使我使用变量来控制线程一一执行 但线程的执行仍然不均匀 即一个线程执行多次 然后控制权转移
  • 获取当前图片在图库中显示的位置

    在我的应用程序中 我有一个图片库 但我想检测当前显示图像的位置 例如 当我启动我的活动时 位置是 0 但是当我在图库中滚动时 我想获取当前显示图像的位置 我尝试过 OnFocusChanged OnItemClicked 但只有当我单击图库
  • 从多个 TextView 中选择文本

    如何在android中从多个文本视图中选择文本 我已经尝试过以下代码 该代码一次仅适用于一个文本视图 我想一次性从许多文本视图中复制文本 android textIsSelectable true 你不能同时这样做 您需要在单个文本视图中设
  • 当底层连接是有状态时如何使用 Apache HttpClient?

    我在谷歌上搜索了很多关于如何使用 HttpClient 进行多线程处理的信息 他们中的大多数人建议使用 ThreadSafeClientConnManager 但我的应用程序必须登录某个主机 登录表单页面 以便 HttpClient 获得底
  • Android:ANT 构建失败,并显示 google-play-services-lib:“解析为没有项目的 project.properties 文件的路径”

    我正在尝试使用 ANT 构建我的应用程序 但在包含 google play services lib 库项目后 我惨遭失败 Step 1 我在 project properties 文件中设置了对库项目的引用 android library
  • SQLiteDatabase.openDatabase 与 SQLiteOpenHelper.getReadableDatabase

    这两种方法有什么区别吗 两者都返回一个打开的 SQLiteDatabase 如果数据库不存在 两者都可以创建数据库 当需要读 写时 SQLiteOpenHelper 还具有 getWriteableDatabase 我应该使用哪种方法以及在
  • Android BLE 扫描永远找不到设备

    几天以来 我尝试在我的应用程序中实现 BLE 连接 我知道我尝试连接的设备功能齐全 因此问题一定是我的代码 我用BluetoothLeScanner startScan 方法 但回调方法永远不会被调用 public void startSc

随机推荐

  • 如何在任何 Web 服务器(Apache 或 Mongrel 或任何其他服务器)中运行简单的 ruby​​ 脚本

    我觉得很有趣的是 当我搜索与 Ruby 相关的内容时 所有与 Ruby on Rails 相关的结果都会弹出 那么没人再使用原始红宝石了吗 然而 我是红宝石新手 今天早上我只是想在网络服务器中运行一个简单的 hello world ruby
  • 仅当 varchar 包含有效日期时,如何将其转换为日期?

    我正在寻找有关 SQL Server Management Studio 的我认为非常有用的信息 我有一个带有 type 列的表varchar存储日期 数字和字符串 这些日期以以下格式存储 dd mm aaaa 我有一个搜索匹配行的查询 一
  • 使用 Bash 脚本构建 SQL 更新语句

    对于最近的项目 我需要循环遍历 3 列的 csv ignore csv 行 acctnum errcode date 按此顺序 列命名在这里并不重要 它只是为了上下文 并使用这些变量来构建 SQL 语句 CSV 可能有 500 行 也可能有
  • android twitter outh教程回调问题

    尝试以下教程 http www androidsdkforum com android sdk development 3 oauth twitter html http www androidsdkforum com android sd
  • 如何将 Windows 窗体窗体的大小调整为小于 132x38? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 当我将无边框表单调整为较小的宽度和高
  • 填充滚动 Flex 容器的 100% 宽度

    我有一个水平滚动元素 overflow x scroll 与包含弹性项目的弹性容器 我正在尝试将背景应用于弹性容器 但正如您在下面的示例中看到的 尝试向左 向右滚动 背景仅应用于视口的可见部分 橙色 有没有什么方法可以将其扩展到全宽 而不必
  • 如何在创建多维数组后立即为其分配多个值 - 在 C 中?

    我正在用 C 进行编程 想知道是否可以一次将多个值分配给多维数组 我尝试过一些技术 但都失败了 我不感兴趣循环遍历数组来分配值 我想要快速的方式为数组中的所有索引分配新值 我正在使用的数组 ary 4 4 来自另一个的 memcpy 将覆盖
  • 有人在 php 5.6 上测试过 Codeigniter 2.2 吗?

    只是想知道 有人在 PHP 5 6 上测试过 CodeIgniter 应用程序吗 我们正在将服务器从 5 3 3 升级到 5 6 当前运行的是 CodeIgniter 2 2 这样可以吗 如果是 如果您发布反馈意见 我将非常感激您遇到了哪些
  • 无法访问 wp-admin

    我意识到这个问题过去曾出现过 但我一直无法找到解决我的问题的方法 我的 wp admin 在我的本地主机上工作正常 但是 当我迁移到实时服务器时 我无法再访问它 如果我确实访问 mysite wp admin 则会收到 404 错误 我尝试
  • cassandra 中 TTL 的最大值

    我们可以分配给 TTL 的最大值是多少 在 cassandra 的 java 驱动程序中 TTL 设置为 int 这是否意味着它仅限于 Integer MAX 2 147 483 647 秒 最大 TTL 实际上是 20 年 从org ap
  • as.Date() 不考虑 POSIXct 时区

    好吧 这里有一个微妙的 怪癖 在 r as Date 函数中从带有时区的 POSIXct 转换而来 我想知道这是否是一个错误 gt as POSIXct 2013 03 29 tz Europe London 1 2013 03 29 GM
  • 两个音频信号之间的时间延迟估计

    我有两个不同麦克风对同一信号进行的两段音频录音 例如 以 WAV 格式 但其中之一的录制有延迟 例如几秒钟 在某种波形查看器中查看这些信号时 很容易通过视觉识别这种延迟 即只需发现每个信号中的第一个可见峰值并确保它们具有相同的形状 sour
  • 如何使用 System.IO.Abstraction 模拟 FileStream?

    我正在尝试使用系统 IO 抽象 https github com System IO Abstractions System IO Abstractions项目与 System IO Abstraction TestingHelpers 一
  • 在带有或不带有 try/catch 的 SQL 中使用 Unique Key 作为验证数据完整性的有效方法

    我有一个包含一些列的表 并且我在其中 3 列上设置了唯一键 以确保表中没有重复项 现在我想知道是否使用 try catch 吞下重复项引发的异常并继续更新插入下一行foreach是个好方法吗 try sqlWrite ExecuteNonQ
  • 如果已经运行android,如何防止服务再次运行

    单击按钮后我想使用方法启动服务startService new Intent currentActivity this MyService class 但如果服务正在运行 我不想调用此方法来避免运行已经在运行的服务 这是怎么可能的 我正在使
  • 线性光模式的 Alpha 混合层

    我正在重新创建一些 Photoshop 混合 并尝试使用线性光模式 在 Photoshop 中 您将有一个不透明度为 100 的背景图层 然后是一个不透明度为 50 的顶层 其混合模式设置为 线性光 我确实找到了有关如何进行线性光混合的信息
  • Docker Openedx devstack 主题

    如何在 OpenEdx 基于 Docker 的 DevStack 中安装并启用自定义主题 我使用综合主题 我在 Linux 上使用 docker LMS 和 CMS 从以下位置的容器文件系统读取许多配置设置 edx app edxapp c
  • NSTextField 在自定义 NSWindow 中不可编辑

    大家好 如果我在控制器的视图中创建 NSTextField 那么一切都很好 该字段是可编辑的 不幸的是 我必须在新的自定义 NSWindow 中创建 NSTextField 我的下面的代码生成一个看起来没有焦点的字段 文本选择为灰色 并且不
  • NodeJS:如何调试“检测到 EventEmitter 内存泄漏。添加了 11 个侦听器”

    如何调试引发此错误的应用程序 node warning possible EventEmitter memory leak detected 11 listeners added Use emitter setMaxListeners to
  • 是否可以在 Service 类中使用 AsyncTask?

    一切都在标题中 官方文件中指出Note that services like other application objects run in the main thread of their hosting process而AsyncTa