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/