4
RemoteViews를 사용하는 데 문제가 있습니다. 단순히 배터리 수준을 보여주는 위젯을 만들고 싶습니다. 나는 이미 다른 모든 것들을 다 했어. 내가 응용 프로그램에게 오류 및 BTW R.id.level 없음 업데이트를 시작하지 않을 때Android : BatteryLevel 위젯이 업데이트되지 않습니다.
public class BatteryLevel extends AppWidgetProvider{ public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){ context.startService(new Intent(context, BatteryMonitorReceiver.class)); } public static class BatteryMonitorReceiver extends Service{ private int currentBatteryLevel = 0; private BroadcastReceiver batteryReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent){ currentBatteryLevel = intent.getIntExtra("level", 0); } }; @Override public void onStart (Intent intent, int startId) { registerReceiver(this.batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); RemoteViews updateViews = new RemoteViews(getPackageName(), R.layout.main); updateViews.setTextViewText(R.id.level, String.valueOf(currentBatteryLevel)); ComponentName thisWidget = new ComponentName(this, BatteryLevel.class); AppWidgetManager manager = AppWidgetManager.getInstance(this); manager.updateAppWidget(thisWidget, updateViews); } @Override public IBinder onBind(Intent intent){ return null; } } }
:
여기 내 클래스입니다.
무엇이 잘못 되었나요?
참고 : 서비스가 내부 클래스입니다 7.
Thx for answer. 그러나 여전히 문제가 있습니다. 업데이트 된 매니페스트 및 onStart를 onStartCommand로 변경했지만 현재 대체하지는 않습니다. –
매개 변수가 다릅니다. 여기를 읽으십시오 : http://developer.android.com/reference/android/app/Service.html – Jong