繁体   English   中英

我如何在Android上创建在后台运行的线程

[英]How can i create a Thread that running on background on Android

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

有人为我提供解决方案或示例吗?

感谢你。

您正在寻找服务

或尝试此代码

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();
                }
            });
        }

第三种使用异步任务的方法- 了解AsyncTask

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

扩展应用程序 (在清单中为其输入一个条目),然后将该线程放入其中。

这样,您的所有活动都可以与之交谈。

您有两种选择:

如果您想打开套接字并使其在活动关闭后仍打开,请使用Service

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

您可以在此处找到如何使用AsyncTask示例

从文档中:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM