जब भी आप अपने विजेट (या तो एक गतिविधि या अपने ब्रॉडकास्ट रिसीवर [ऐप विजेट प्रदाता] का उपयोग करके) को अपडेट करते हैं, तो आपको क्लिक हैंडलर के लिए सभी लंबित संकेतों को फिर से सौंपना होगा, और फिर सामान्य के रूप में updateAppWidget()
पर कॉल करना होगा।setTextViewText()
साथ
उदाहरण:
// This will update the Widget, but cause it to
// stop working after an orientation change.
updateWidget()
{
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
remoteViews.setTextViewText(R.id.widget_text_view, "Updated widget");
appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
}
// This is the correct way to update the Widget,
// so that it works after orientation change.
updateWidget()
{
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
remoteViews.setTextViewText(R.id.widget_text_view, "Updated widget");
Intent intent = new Intent(context, MyWidgetActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, ...);
remoteViews.setOnClickPendingIntent(R.id.widget_click_button, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
}
हाय, मैं इस समस्या आप लिंक आप पोस्ट में पहचान की है जवाब दे दिया। जब आप स्क्रीन को घुमाते हैं तो यह विजेट को फिर से बनाया जा सकता है। जब विजेट पुन: बनाया जाता है, तो आपको क्लिक हैंडलर पर क्लिक करना होगा - यानी। लंबित क्लिक घटनाओं को दोबारा संलग्न करें। यही कारण है कि सेवा इस परिदृश्य के लिए अच्छी तरह से काम करता है। यह ऑन कॉन्फिगरेशन चेंजेड इवेंट को कैप्चर करता है और हैंडलर को यूई घटकों में पुनर्निर्मित करता है। – jagsaund
धन्यवाद, किसी सेवा की सहायता के बिना हल किया गया है, बस ऑनऑसिव विधि में setOnClickPendingIntent को फिर से सेट करें। – Alex
क्या आप हमें बता सकते हैं कि अभिविन्यास परिवर्तन के लिए आपको किस तरह से प्राप्त किया जा सकता है? मुझे एक ही समस्या है, लेकिन इस ऐप के लिए मेरा AppWidgetProvider.onReceive() नहीं बुलाया जा रहा है। –