1

我在活动中有一个带有开放套接字连接的线程,我喜欢全局使用线程,以便我可以从其他活动中的线程获取数据。有人认为就像在后台运行...

有人对我有解决方案或示例吗?

感谢你。

4

3 回答 3

4

您正在寻找服务

或试试这个代码

void runInBackground() {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    // DO your work here
                    // get the data
                    if (activity_is_not_in_background) {
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                //uddate UI
                            }
                        });
                    }
                    runInBackground();
                }
            });
        }

以及使用Async Task的第三种方法——了解AsyncTask

于 2013-10-02T19:21:15.327 回答
1

如果您希望多个活动可以访问该线程,那么我将结合 Vaibs_cool 运行线程的示例(它只是一个普通线程,没有特定于 Android 的)然后......

扩展应用程序(在清单中为其创建一个条目)并将该线程放在那里。

这样,您的所有活动都可以与之对话。

于 2013-10-02T19:24:42.453 回答
0

你有两个选择:

如果您想打开套接字并在 Activity 关闭后打开它,请使用Service

另一方面,如果您想在 Activity 运行期间打开套接字并在 Activity 关闭时关闭,则使用AsyncTask

您可以找到示例如何使用AsyncTask here

从文档:

网络操作可能涉及不可预知的延迟。为防止这导致糟糕的用户体验,请始终在与 UI 不同的线程上执行网络操作。AsyncTask类提供了一种从 UI 线程触发新任务的最简单方法。

于 2013-10-02T19:19:13.977 回答