6

मैं इस समस्या के साथ तीन दिनों के लिए काम कर रहा हूं और मैंने जवाब के लिए यहां पर हर एक प्रश्न को देखा है। मेरे पास एक बटन वाला विजेट है और मैं इसे हर बार क्लिक करना चाहता हूं जब भी इसे क्लिक किया जाता है। समस्या यह है कि बटन यादृच्छिक रूप से काम करना बंद कर देता है। मैं इसे बिल्कुल भी पुनर्जीवित नहीं कर सकता और मुझे नहीं पता कि इसका कारण क्या है। मेरी सेवा कॉल रोकता है(); लेकिन मुझे इस समस्या को ब्रॉडकास्ट रिसीवर के साथ भी मिला है, इसलिए मुझे लगता है कि समस्या में विजेट होने की समस्या है और सेवा में नहीं। यहाँ कोडएंड्रॉइड विजेट यादृच्छिक रूप से काम कर रहा है

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[]  appWidgetIds) 
{ 

Log.i("Widget", "onUpdate"); 

final int N = appWidgetIds.length; 

    for (int i=0; i<N; i++) 
    { 

     int appWidgetId = appWidgetIds[i]; 

     Log.i("Widget", "onUpdateLoop"); 


     Intent intent = new Intent(context, ServiceWidgetAction.class); 
     intent.setAction(Long.toString(System.currentTimeMillis())); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

     PendingIntent pendingIntent = PendingIntent 
       .getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

     RemoteViews views = new RemoteViews(context.getPackageName(), 
       R.layout.widget); 

     views.setOnClickPendingIntent(R.id.widgetButton, pendingIntent); 

     views.setTextViewText(
       R.id.widgetTextView, 
       "Some text"); 

     appWidgetManager.updateAppWidget(appWidgetId, views); 

    } 

} 

मैं अधिक से अधिक इस कोड को देख लिया है और मुझे पता नहीं क्यों यह यह कर रहा है। यह 3 अलग-अलग फोन पर करता है और मैं इसे फिर से नहीं बना सकता। मैंने एप को रोकने के लिए मजबूर करने की कोशिश की है, इसे कार्य रोकने के लिए विजेट प्राप्त करने के लिए नए विजेट इत्यादि को जोड़ने वाले टास्क मैनेजर से इसे साफ़ करना है और यह नहीं होगा। हालांकि जब मैं आज सुबह जाग गया तो विजेट अब काम नहीं करता है। किसी भी तरह की सहायता का स्वागत किया जाएगा।

+0

क्या ऐसा होता है जब आप LogCat में कुछ भी देखते हैं? – CaseyB

+0

लॉककैट में कुछ भी नहीं, इसकी गतिविधि में कोई ऑनक्लिक विधि नहीं है। मैं देख सकता हूं कि यह दबाया गया है लेकिन ऐप या लॉककैट में कुछ भी नहीं होता है। –

उत्तर

10

मैं इस समस्या का पता लगाना समाप्त हो गया। मैं ऐप में अन्य स्थानों से विजेट अपडेट कर रहा था और मेरे पास प्रत्येक के लिए पूरा कोड नहीं था। दूसरे शब्दों में मेरे ऐप इस

RemoteViews views = new RemoteViews(context.getPackageName(), 
      R.layout.widget); 

    views.setTextViewText(
      R.id.widgetTextView, 
      "Some text"); 

    appWidgetManager.updateAppWidget(appWidgetId, views); 

तरह विजेट में textviews अद्यतन लेकिन यह बटन ऐसा दिखाई देता पंजीकृत रखने के लिए पूरे कोड की जरूरत:

Intent intent = new Intent(context, ServiceWidgetAction.class); 
    intent.setAction(Long.toString(System.currentTimeMillis())); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

    PendingIntent pendingIntent = PendingIntent 
      .getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

    RemoteViews views = new RemoteViews(context.getPackageName(), 
      R.layout.widget); 

    views.setOnClickPendingIntent(R.id.widgetButton, pendingIntent); 

    views.setTextViewText(
      R.id.widgetTextView, 
      "Some text"); 

    appWidgetManager.updateAppWidget(appWidgetId, views); 

तो लब्बोलुआब यह है जब भी आप एक विजेट अद्यतन कर रहा है अपने ऐप के भीतर से, सुनिश्चित करें कि यह विजेट में कोड की तरह दिखता है। कुछ भी मत छोड़ो।

+0

धन्यवाद। मेरे मामले में, एक विधि जो हमेशा अद्यतन विजेट है, कुछ मामलों में अपवाद फेंक सकता है, और कोड का हिस्सा निष्पादित नहीं होगा। – Alireza

+0

यह सोना है, प्रतीक्षा करें - इसका बिटकॉइन उत्तर देने योग्य - 10x साथी – gor

0

क्या आपने अपना विजेट एसडी कार्ड में स्थापित किया था?

Google सभी विजेट, अलार्म और रिसीवर ऐप प्रकारों को आंतरिक स्टोरेज में स्थापित करने की अनुशंसा करता है, इस तरह सिस्टम सिंक समस्याएं।

शायद नहीं समाधान है, लेकिन एक "जांच करना चाहिए";)

android:installLocation="internalOnly" 
+0

मैंने इस बारे में नहीं सोचा क्योंकि मैंने ऐप को ऐप सक्षम किया है, हालांकि मैंने अभी इसे चेक किया है और ऐप को आंतरिक मेमोरी में इंस्टॉल किया गया था। वैसे, इनपुट के लिए धन्यवाद! –

संबंधित मुद्दे