如何在Android屏幕上显示服务文本更新?

时间:2013-06-17 05:25:34

标签: android android-service android-ui

我正在使用以下代码创建Android活动并从此活动启动服务。现在我想显示文本" Hello user"从此服务到屏幕,意味着服务应该触发此显示。我可以使用Toast.maketext.show,但显示将在几秒后消失。

    new Thread(new Runnable() {
        @Override
        public void run() {
            startAdapterIntent.setAction("START_ADAPTER");      
            startService(startAdapterIntent);
            System.out.println("Thread2: Adapter Service started.");                
        }
    }).start();

我该怎么做?

我尝试使用此链接: Making changes to Main Activity UI from thread in Service

及其(可能)父链接 http://developer.android.com/reference/android/app/Service.html 部分"远程信使服务示例"

使用第二个链接时,ServiceConnection的onServiceConnected部分似乎无法正常工作?请帮忙。谢谢。

1 个答案:

答案 0 :(得分:0)

从你的服务中你应该创建一个可以由计时器任务触发的处理程序,处理程序应该是直接负责与当前活动的UI线程进行通信的人。例如

    long delay  = 3000;
    long period = 3000; 
    TimerTask mDoTask = new TimerTask() {
        @Override
        public void run() {
            xHandler.sendMessage(Message.obtain(xHandler, SOME_OPERATION));
        }
    };
    mT.scheduleAtFixedRate(mDoTask, delay, period); 
Handler xHandler=new Handler(){
        @Override
        public void handleMessage(Message message){
            switch (message.what){
            case SOME_OPERATION:
                YourMethod();// in this method you can display your text 
                break;
            }
        }
     };