我正在使用以下代码创建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部分似乎无法正常工作?请帮忙。谢谢。
答案 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;
}
}
};