我有一个连接到这样的服务的应用程序:
getActivity().startService(intent);
然而,我意识到当方向改变时,与服务的连接被破坏并重新创建(由于活动生命周期),这不是我想要的。我读到正确的做法是使用片段并在其上调用setRetainInstance(true)以使与服务的连接保持不变。但是,由于重新创建了活动,getActivity()。startService(intent)没有意义,因为一旦方向改变,服务似乎与不再存在的活动相关联。这是使用getApplicationContext的时间,因为即使重新创建活动后它应该是相同的吗?另外,如果我这样做,因为我必须在UI线程中启动服务,如下所示:
getApplicationContext().runOnUiThread(new Runnable() {
public void run() {
getApplicationContext().startService(intent);
}
});
它不起作用,因为getApplicationContext()没有runOnUiThread函数。
关于如何从像这样的持久片段连接到服务的任何想法?