मुझे यकीन नहीं है कि आप अभी भी उत्तर की तलाश में हैं, यह देखते हुए कि आपने स्वयं को एक प्रदान किया है। लेकिन, आप अपने मूल लक्ष्य को प्राप्त करने के लिए देख रहे हैं, तो आप शायद
- को RemoteView पुनर्निर्माण जब भी समय परिवर्तन (यह अभी जिस तरह आसान है)
- घड़ी की टिक को पकड़ने के लिए एक BroadcastReceiver सेट करें चाहते हैं तो आप जानते हैं कि समय कब बदल गया है।
तो, कुछ कोड इस तरह एक सा:
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
}
}
};
स्रोत
2013-03-11 21:41:16
मैं मेरे प्रश्न का मेरा हिस्सा जवाब दिया था। हालांकि, यह मेरी समस्या का समाधान नहीं करता है। मेरे पास एक कस्टम व्यू (सेटकंटेंट का उपयोग करके) के साथ एक रिमोट व्यू है। मुझे मूल अधिसूचना के व्यवहार की नकल करने, मेरी अधिसूचना में प्रदर्शित होने वाली तिथि या समय चाहिए। मैं एपीआई कॉल (DateUtils.formatSameDayTime) का उपयोग करके इसे प्राप्त करूंगा। समस्या यह है कि, oncesetTextViewText को रिमोट व्यू और अधिसूचना प्रबंधक पर बनाया गया है। नोटिफ़ाई कहा जाता है, यह है, पाठ स्थायी है। मुझे समय बीतने के समय गतिशील रूप से बदलना एक तिथि या समय चाहिए (24 घंटे से अधिक समय दिखाएगा)। कृपया मदद करे। –