मैं एक विन्यास गतिविधि है जो निम्न विधि कॉल जब इसकी OK
बटन क्लिक किए जाने के साथ एक विजेट लिख रहा हूँ:मैं कॉन्फ़िगरेशन गतिविधि में अद्यतन कैसे लागू करूं?
private void ok()
{
// ...Do Widget Configuration...
// Force an update
Context context = getApplicationContext();
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
AppWidgetManager.getInstance(context).updateAppWidget(widget_id, views);
// Return the expected result
Intent result = new Intent();
result.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widget_id);
setResult(RESULT_OK, result);
finish();
}
यह the documentation से लगभग शब्दशः है। widget_id
में विजेट आईडी है जो गतिविधि के onCreate()
के दौरान खोला गया था।
जब मैं घर स्क्रीन पर विजेट का एक उदाहरण देते हैं, मैं सत्यापित किया है कि मैं घटनाओं की उम्मीद अनुक्रम मिलती है:
onReceive()
एकACTION_APPWIDGET_ENABLED
हो जाता है अगर यह पहले से एक है।onUpdate()
कॉल किया जाता है (जिसमें मुझे पता चलता है कि विजेट कॉन्फ़िगर नहीं है और डिफ़ॉल्ट कार्रवाई के रूप में कुछ खींचता है)।- कॉन्फ़िगरेशन गतिविधि प्रकट होती है।
- जब मैं
OK
दबाता हूं, तो ऊपर दिए गएok()
विधि को कॉल किया जाता है।
विधि finish()
के माध्यम से सभी तरह से हो जाता है और विन्यास गतिविधि चला जाता है, लेकिन वहाँ इस बिंदु के बाद onUpdate()
या onReceive()
करने के लिए कोई कॉल है। (विजेट के पास updatePeriodMillis
नहीं है।) मैं स्क्रीन पर एक विजेट के साथ समाप्त होता हूं जिसमें मेरी डिफ़ॉल्ट कार्रवाई के परिणाम होते हैं लेकिन अपडेट नहीं होते हैं।
अगर मैं कॉन्फ़िगरेशन गतिविधि के बिना विजेट सेट करता हूं, तो इसे बनाए जाने पर अपडेट हो जाता है और सब कुछ अपेक्षित काम करता है (केवल कॉन्फ़िगर किए गए बिट्स के बिना)।
क्या मुझे किसी अपडेट को मजबूर करने के तरीके में कुछ याद आ रही है?
धन्यवाद!
वाह, कोई भी नहीं ...? – Blrfl
यह एंड्रॉइड में एक ज्ञात बग है: ऑन अपडेट को केवल आपके कॉन्फ़िगरेशन गतिविधि से लौटने के बाद ही बुलाया जाना चाहिए। मेरी भी यही समस्या है। उम्मीद है कि 3.2 इसे हल करेगा – soBinary