host.activity 是我的包,host.framework.ServicePromemoria 是一个android 服务。
这个错误是什么意思?
这意味着您的服务正在执行相当长的操作(大多数 ANR 来自超过 5 秒的操作)并且是在 UI 线程上执行的。这可能是网络任务、数据库任务或其他一些长时间操作。
您可以通过在主 UI 线程之外的服务中运行任务来解决此问题,方法是使用Thread http://developer.android.com/reference/java/lang/Thread.html or an 异步任务 http://developer.android.com/reference/android/os/AsyncTask.html.
事实上,您可以直接将服务启动到新线程中,如下所示:
Thread t = new Thread(){
public void run(){
getApplicationContext().bindService(
new Intent(getApplicationContext(), YourService.class),
serviceConnection,
Context.BIND_AUTO_CREATE
);
}
};
t.start();
另外,如果您需要的话,还可以缓存bindservice 返回的值(如果有)以供以后使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)