setRetainInstance在需要服务的片段上

时间:2013-09-30 15:13:28

标签: android android-fragments

我有一个连接到这样的服务的应用程序:

getActivity().startService(intent);

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

        getApplicationContext().runOnUiThread(new Runnable() {
            public void run() {
                getApplicationContext().startService(intent);

            }
        });

它不起作用,因为getApplicationContext()没有runOnUiThread函数。

关于如何从像这样的持久片段连接到服务的任何想法?

0 个答案:

没有答案