我有一个活动MainActivity.java。从主要活动的OnCreate()方法我已经启动了一个服务,它连接到MyService.java的OnCreate()方法内的rabbit mq消息服务器(它扩展了Service)。问题是acvitiy屏幕显示时间太长,因为兔子mq连接建立需要很长时间,因为网络速度慢。然后我的应用程序显示ANR消息,如何克服这个以及在哪里调用startService来避免消息
答案 0 :(得分:0)
您需要在不同的线程上处理您的连接。你有几个选择。
我会推荐AsyncTask,因为这个网站上有很多例子,几乎无处不在。
无论您是否使用服务,都需要执行此操作。请记住,服务在与用户界面相同的线程中运行。所以也许你甚至不需要服务。
编辑:
您可以在应用程序的任何位置启动线程,包括活动的onCreate()
。如果您选择在服务中启动线程,您也可以在任何地方启动线程,包括onStartCommand()
。