Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更新服务类中更新的textview文本_Android_Android Layout_Service_Background - Fatal编程技术网

Android 如何更新服务类中更新的textview文本

Android 如何更新服务类中更新的textview文本,android,android-layout,service,background,Android,Android Layout,Service,Background,我开发了一个应用程序,其中包含开始、暂停、恢复和完成按钮 它使用线程和处理程序在活动中正常工作 如果用户单击开始按钮,线程将启动并显示文本视图hh:MM:SS时间,其余按钮也正常工作 问题: 如果活动转到后台,那么我如何更新文本视图时间?我已经为此任务提供了服务,但是,我如何将响应从服务转移到用户界面? 请告诉我如何做或其他可能的解决方案好吗?如果您在活动中创建一个简单的新线程(new Runnable(){…}),您可以使用rununuithread(new Runnable(){//your

我开发了一个应用程序,其中包含
开始
暂停
恢复
完成
按钮

它使用线程和处理程序在活动中正常工作

如果用户单击
开始按钮
,线程将启动并显示
文本视图hh:MM:SS时间
,其余按钮也正常工作

问题:

如果活动转到后台,那么我如何更新文本视图时间?我已经为此任务提供了服务,但是,我如何将响应从服务转移到用户界面?


请告诉我如何做或其他可能的解决方案好吗?

如果您在活动中创建一个简单的
新线程(new Runnable(){…})
,您可以使用
rununuithread(new Runnable(){//your UI modify method})
Acitvity方法运行UI操作。如果活动转到后台,线程仍在运行。

您可以创建
CustomBroadcast

下面是示例代码。 试试这个,它会有用的

在YourService.Java中

public static final String BROADCAST_ACTION = "com.example.tracking.updateprogress";
intent = new Intent(BROADCAST_ACTION);
sendBroadcast(intent);
registerReceiver(broadcastReceiver, new IntentFilter(YourService.BROADCAST_ACTION));

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
                //Update Your UI here.. 
                updateUI();      
        }
}
在YourActivity.Java中

public static final String BROADCAST_ACTION = "com.example.tracking.updateprogress";
intent = new Intent(BROADCAST_ACTION);
sendBroadcast(intent);
registerReceiver(broadcastReceiver, new IntentFilter(YourService.BROADCAST_ACTION));

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
                //Update Your UI here.. 
                updateUI();      
        }
}

您还可以在
Intent

如何使用停止和暂停服务?启动、恢复、正常停止工作中传递数据。如何恢复服务?是指?当我单击“暂停”按钮时,如何暂停服务?服务无法暂停/恢复