Tôi không chắc bạn có đang tìm câu trả lời hay không, với điều kiện bạn đã tự cung cấp câu trả lời. Tuy nhiên, nếu bạn đang tìm kiếm để đạt được mục tiêu ban đầu của bạn, bạn có thể sẽ muốn
- Rebuild các RemoteView bất cứ khi nào thay đổi thời gian (nó chỉ là cách dễ dàng hơn)
- Thiết lập một BroadcastReceiver để bắt ve của đồng hồ để bạn biết khi nào thời gian đã thay đổi.
Vì vậy, một số mã một chút như thế này:
class MyCleverThing extends Service (say) {
// Your stuff here
private static IntentFilter timeChangeIntentFilter;
static {
timeChangeIntentFilter = new IntentFilter();
timeChangeIntentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
timeChangeIntentFilter.addAction(Intent.ACTION_TIME_CHANGED);
}
// Somewhere in onCreate or equivalent to set up the receiver
registerReceiver(timeChangedReceiver, timeChangeIntentFilter);
// The actual receiver
private final BroadcastReceiver timeChangedReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(Intent.ACTION_TIME_CHANGED) ||
action.equals(Intent.ACTION_TIMEZONE_CHANGED))
{
updateWidgets(); // Your code to rebuild the remoteViews or whatever
}
}
};
Nguồn
2013-03-11 21:41:16
tôi một phần câu hỏi của tôi đã được trả lời. Tuy nhiên, điều đó không giải quyết được vấn đề của tôi. Tôi có một RemoteViews với chế độ xem tùy chỉnh (sử dụng setContent). Tôi muốn một ngày hoặc thời gian được hiển thị trong thông báo của tôi, bắt chước hành vi của Android gốc. Tôi sẽ đạt được điều này bằng cách sử dụng cuộc gọi API (DateUtils.formatSameDayTime). vấn đề là, oncesetTextViewText được tạo trên RemoteView và notificationManager.notify được gọi, đó là nó, văn bản là vĩnh viễn. Tôi muốn ngày hoặc giờ tự động thay đổi dựa trên thời gian đã qua (hơn 24 giờ sẽ hiển thị ngày). Hãy giúp tôi. –