Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 为什么runOnUiThread()在服务中不起作用?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个应用程序,即使应用程序没有运行,也需要每分钟更新一次值.

当然,我已经设置了一个简单的服务来做到这一点.我设置了调试消息,告诉我服务何时启动,何时更新(每分钟)以及何时关闭.我还有一条消息告诉我何时在runOnUiThread()方法中更新值.除runOnUiThread()中的消息外,我的所有消息都会激活.有什么我做错了(当然有)?我需要改变什么?

码:

@Override
public void handlemessage(message messagE) {

    try {

        if (!serviceStarted) {

            serviceStarted = true;
            serviCETest = true;

            while (serviceStarted) {

                new MainActivity().runOnUiThread(new Runnable() {

                    public void run() {

                            OverviewFragment.refresh(getApplicationContext());
                            System.out.println("yay");

                         }
                });

                Thread.sleep(((1 /* minutes */) * 60 * 1000));
                System.out.println("updated values through service.");

            }
        }


    } catch (InterruptedException E) {

        Thread.currentThread().interrupt();
        e.printStackTrace();

    }

    stopSelf(message.arg1);
}

解决方法

Gabe Sechan的回答是正确的.

但是,如果您使用单独的线程,而不是遵循代码

new MainActivity().runOnUiThread(new Runnable() {
       public void run() {
            OverviewFragment.refresh(getApplicationContext());
                 System.out.println("yay");

       }
});

试试,这段代码

new Handler(Looper.getMainLooper()).post(new Runnable() {
       public void run() {
            OverviewFragment.refresh(getApplicationContext());
                 System.out.println("yay");
       }
});

按照Android docs

大佬总结

以上是大佬教程为你收集整理的android – 为什么runOnUiThread()在服务中不起作用?全部内容,希望文章能够帮你解决android – 为什么runOnUiThread()在服务中不起作用?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。