Dao*_*Lam 6 service android textview
我有一个活动与R.id.eventDistance和R.id.eventTime显示基于当前位置的距离和旅行时间.我使用我的位置服务类每30秒计算一次这些值.
我的问题是:如何在Activity中更新TextView?我已经尝试查找问题并找到了一些可能的解决方案,例如使用BroadcastReceiver并在onReceive()方法中调用TextView.setText().我不确定这是怎么做的.我应该像这样传入Activity类:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, HomeActivity.class);
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道在那之后该怎么做.任何帮助表示赞赏.
Jig*_*iya 15
请看这个流程.
1.当您想要更新UI时,在您的LocationService类中.在你的情况下,它应该每30秒调用一次.
Intent i = new Intent("LOCATION_UPDATED");
i.putExtra("<Key>","text");
sendBroadcast(i);
Run Code Online (Sandbox Code Playgroud)
2.在你的UI(HomeActivity)课程中
在onCreate()
registerReceiver(uiUpdated, new IntentFilter("LOCATION_UPDATED"));
Run Code Online (Sandbox Code Playgroud)
在班上
private BroadcastReceiver uiUpdated= new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
TextView.setText(intent.getExtras().getString("<KEY>"))
}
};
Run Code Online (Sandbox Code Playgroud)
在onDestroy()
unregisterReceiver(uiUpdated);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6952 次 |
| 最近记录: |