जैसे ACTION_BATTERY_CHANGED फायरिंग ठीक है, इसलिए मैं एक ऐपविड्ज पर काम कर रहा हूं जो बैटरी स्तर की जांच करता है और इसे टेक्स्ट व्यू पर प्रदर्शित करता है। मेरे कोड इस तरह दिखता है:पागल
public class BattWidget extends AppWidgetProvider {
private RemoteViews views = new RemoteViews("com.nickavv.cleanwidgets", R.layout.battlayout);
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int appWidgetIds[]) {
final int N = appWidgetIds.length;
context.getApplicationContext().registerReceiver(this,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
Log.d("onReceive", "Received intent " + intent);
if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
Integer level = intent.getIntExtra("level", -1);
views.setTextViewText(R.id.batteryText, level+"%");
AppWidgetManager myAWM = AppWidgetManager.getInstance(context);
ComponentName cn = new ComponentName(context, AirWidget.class);
onUpdate(context, myAWM, myAWM.getAppWidgetIds(cn));
}
}
}
और मैं चिंतित हो रही क्योंकि जैसे ही मैं अपने होमस्क्रीन पर विजेट ड्रॉप के रूप में यह 100 उन लॉग एक दूसरे कॉल के बारे में बंद फायरिंग शुरू होता है, और कहा कि यह ACTION_BATTERY_CHANGED प्राप्त है। क्या यह केवल प्रत्येक प्रतिशत की कमी के लिए प्रसारण नहीं किया जाना चाहिए? यह वास्तव में मेरे पूरे लॉन्चर को अंतराल के कारण हुआ, मुझे इसे अनइंस्टॉल करना पड़ा। यह सही नहीं हो सकता है।
वास्तव में इसके बारे में कुछ भी नहीं पता है, लेकिन क्या यह बैटरी की निगरानी करने के लिए एक सेवा स्थापित करने और एक पूर्वनिर्धारित अंतराल पर चौड़े समय तक फ़ीड करने के लिए एक सेवा स्थापित करने लायक है? – mAndroid