0

我正在创建一个 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();

我怎么做?

我尝试使用此链接: 从服务中的线程更改主活动 UI

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

在使用第二个链接时,ServiceConnection 的 onServiceConnected 部分似乎不起作用?请帮忙。谢谢你。

4

1 回答 1

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;
            }
        }
     };
于 2013-06-17T06:04:55.773 回答