私はAndroidが初めてで、少し問題があります。すでに複数のフォーラムを検索しましたが、何も検索していません..
バッテリーを表示するシンプルなウィジェットがあり、クリックするとポップアップテーマでアクティビティが開きます。
だから私はこれもファイルを持っていますが、何か方法が間違っているのでしょうか?
ウィジェットプロバイダー:
public class Widget extends AppWidgetProvider {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
super.onReceive(context, intent);
context.startService(new Intent(context, Service.class));
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
ComponentName thisWidget = new ComponentName(context,
Widget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
for (int widgetId : allWidgetIds) {
RemoteViews updateViews = new RemoteViews(context.getPackageName(),
R.layout.widget_layout);
Intent intent = new Intent(context, Popup.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, 0);
updateViews.setOnClickPendingIntent(R.id.widget_layout,
pendingIntent);
manager.updateAppWidget(widgetId, updateViews);
}
}
@Override
public void onDisabled(Context context) {
// TODO Auto-generated method stub
context.stopService(new Intent(context, Service.class));
super.onDisabled(context);
}
}
そして私のサービスで:
public class Service extends Service {
private int batteryLevel = 0;
RemoteViews updateViews;
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
batteryLevel = intent.getIntExtra("level", 0);
updateViews = new RemoteViews(context.getPackageName(),
R.layout.widget_layout);
updateViews.setImageViewBitmap(R.id.imgBattery,
buildBitmap(batteryLevel + "%", context));
ComponentName thisWidget = new ComponentName(context,
Widget.class);
AppWidgetManager manager = AppWidgetManager
.getInstance(context);
manager.updateAppWidget(thisWidget, updateViews);
}
}
};
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(receiver, intentFilter);
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
unregisterReceiver(Receiver);
super.onDestroy();
}
}
誰か助けてくれませんか?それに加えて、サービスには30MBがあります...実行中