مقفلة appwidget النوايا بعد إعادة تشغيل العملية المنزلية

StackOverflow https://stackoverflow.com/questions/2221005

سؤال

يوفر تطبيق Android الخاص بي Transdroid العديد من الحاجيات الشاشة الرئيسية. كل AppWidget يحتوي على 2 "أزرار" (ImageButton)، يبدأ المرء التطبيق ويبدأ المرء بعض النشاط الذي يقوم بتحديث محتوى AppWIDGET. بسيطة جدا. هنا هي لقطة شاشة. رمز القطعة في موقع الويب الخاص بي في Google، ولكن الأهم من ذلك:

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_15);
views.setOnClickPendingIntent(R.id.widget_action, PendingIntent.getActivity(context, 0, new Intent(context, Transdroid.class), 0));
appWidgetManager.updateAppWidget(id, views);

المشكلة هي: لا يتم استدعاء Onupdate عنصر واجهة المستخدم بعد إعادة تشغيل العملية المنزلية، وبالتالي يتم فقد الراوات المستخدمة في إرفاق الوظيفة إلى الأزرار.

من السهل إلى حد ما إعادة التكاثر.

  1. بدء محاكي
  2. إضافة عنصر واجهة مستخدم (يستخدم رينفتينثين ل، يقول، ابدأ نشاطا)
  3. انقر فوق الزر لمعرفة ذلك يعمل بالفعل
  4. القوة قتل العرق المنزلي ("ADB -E SHELL قتل 96" حيث 96 هو PID من Android.Process.acore)
  5. لا يعمل زر القطعة بعد الآن.

أكثر دقة: لا onreceive وبالتالي لا يتم استدعاء onupdate عند إعادة تشغيل عملية Android.Process.acore الرئيسية. بدوره، لا يتم إرفاق أي نية.

شهد أي شخص نفس المشكلة ويعرف كيفية التحايل على هذه المشكلة؟

هل كانت مفيدة؟

المحلول

لقد اختبرت للتو زوجين من AppWidgets الخاصة بي، وأحداث النقر الخاصة بهم تعمل بشكل جيد بعد مقتل أكور. إليك الرمز الخاص بي

    final RemoteViews views = new RemoteViews(context.getPackageName(), layoutId);
    views.setOnClickPendingIntent(R.id.widget_view, PendingIntent.getActivity(
            context, 
            0, 
            new Intent(context, MyActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK), 
            PendingIntent.FLAG_UPDATE_CURRENT));

الفرق الرئيسي الذي أستطيع أن أرى هو الأعلام المتعلقة بالقدرة؛ أود أن أقول إنهم بالتأكيد يستحق المحاولة. [ال layoutId المعلمة في التعليمات البرمجية الخاصة بي هي مجموعة ancewere؛ يستخدم هذا الرمز نفسه للعديد من الحاجيات مع تخطيطات مختلفة].

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top