gpt4 book ai didi

java - 服务无法正常工作

转载 作者:行者123 更新时间:2023-12-02 02:49:57 25 4
gpt4 key购买 nike

我正在尝试学习可以更新UI的服务和后台线程,这里,该服务是通过从MainActivity调用startService()方法启动的,问题是:当循环运行较大的值 i时,不会显示所有值的 Toast(有趣的是,循环后制作的 Toast 也没有显示),但这次我使用 10/20 等进行测试并完美运行。

以下是MyService.java的代码:

public class MyService extends IntentService {

Handler mhandler;

public MyService() {
super("Hello");
}

@Override
public void onCreate() {

Toast.makeText(this, "Service Starting!", Toast.LENGTH_SHORT).show();
super.onCreate();

mhandler = new Handler();

}


@Override
protected void onHandleIntent(@Nullable Intent intent) {


mhandler.post(new Runnable() {
@Override
public void run() {

int i;
for (i = 0; i < 100; i++) {
Toast.makeText(MyService.this, "i is: " + i, Toast.LENGTH_SHORT).show();
}
Toast.makeText(MyService.this, "finally i is: "+i, Toast.LENGTH_SHORT).show();
}
});


}
}

并请求一些对于 Android 服务、后台任务、广播接收器方面的初学者来说非常有用的资源。我得到了developer.android.com(不太......对初学者有帮助),www.vogella.com等。提前致谢。

最佳答案

我相信您只看到 i 的前几个值的原因是 Android 不允许应用程序向 toast 队列发送垃圾邮件。

正如 @David Wasser 在 OP 帖子的评论中提到的,Toast 不是一个可靠的调试工具。使用 logcat 代替:

Log.v("TAG", "Message")

关于java - 服务无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com