android - 应用程序无响应 (ANR) 正在执行服务 android

标签 android service runtime-error

error service

host.activity 是我的包,host.framework.ServicePromemoria 是一个 android 服务。

这个错误是什么意思?

最佳答案

这意味着您的服务正在执行相当长的操作(大多数 ANR 来自超过 5 秒的操作)并且是在 UI 线程上执行的。这可能是网络任务、数据库任务或其他一些长时间操作。

您可以通过使用 Thread 在主 UI 线程之外的服务中运行任务来解决此问题或 AsyncTask .

事实上,您可以直接在一个新线程中启动您的服务,如下所示:

Thread t = new Thread(){
public void run(){
getApplicationContext().bindService(
        new Intent(getApplicationContext(), YourService.class),
        serviceConnection,
        Context.BIND_AUTO_CREATE
    );
}
};
t.start();

此外,缓存 bindservice 返回的值(如果有的话),如果您需要它以备后用。

关于android - 应用程序无响应 (ANR) 正在执行服务 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13053611/

相关文章:

c++ - C++ 中的矩阵乘法给出运行时错误

c - Linux 代码块上的断言 'value' 失败

java - 将 ArrayList<ArrayList<String>> 转换为 java 中的二维数组

android - 使日期选择器按钮看起来类似于 Google 日历应用程序中的按钮

python - 将 python 脚本作为 systemd 服务运行

windows - 无法在 Windows 上将 SonarQube 5.3 作为服务运行

JavaScript 在 IE8 和 IE9 上崩溃-CompabilityMode : SCRIPT601: Unknown runtime error

javascript - 自动将用户重定向到 Chrome 中的深层链接不起作用

java - 无法将用户带到通知设置

http - 用于开发 RESTful Web 服务的工具