服务无法正常工作

Service not working correctly

我正在尝试学习可以更新 UI 的服务和后台线程,这里,这个服务是通过从 MainActivity 调用 startService() 方法启动的,问题是:当循环运行 更大的值 i,没有显示所有值的吐司(有趣的是循环后制作的吐司也没有显示),但这次我测试了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 post 的评论中提到的,Toast 不是可靠的调试工具。 使用 logcat 代替:

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