0

基本的にスタート/ストップボタンといくつかの情報を含むフィールドだけを持つAndroidウィジェットを作成する必要があります。[開始]ボタンは、1秒ごとに結果を取得するサービスを開始する必要があります。この結果の一部がウィジェットに表示され、停止ボタンを押すことでサービスを再度停止できます。

誰かが私にこれを実装するための戦略がどのようになるかを正しい方向に向けてください。

今はたくさん読んでいますが、よくわかりません。私が理解していることから、AlarmManagerはやり過ぎで、バッテリーを非常に速く消耗するか、電話が応答しなくなります。また、サービスに5秒以上かかるため、BroadcastReceiverを使用できません(これについてはわかりません)。

どんな助けでも大歓迎です!

4

1 に答える 1

0

まず、ウィジェットからサービスを作成している間、実行中のサービスはバッテリーとメモリを使用するため、必要な変更を行ったらすぐに停止することをお勧めします。

ウィジェットを作成するには、これが役立ちます:-

public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {
    // TODO Auto-generated method stub
    super.onUpdate(context, appWidgetManager, appWidgetIds);
    for (int i = 0; i < appWidgetIds.length; i++) {
        int appWidgetId = appWidgetIds[i];
        //Give the name of service you want to start in your case Alarm Service
        Intent intent = new Intent(context, WidgetService.class);
        PendingIntent pendingIntent = PendingIntent.getService(context, 0,
                intent, 0);
        //This basically sets the layout of your widget to widget_layout
        RemoteViews views = new RemoteViews(context.getPackageName(),
                R.layout.widget_layout);
        views.setOnClickPendingIntent(R.id.imageView1, pendingIntent);

        appWidgetManager.updateAppWidget(appWidgetId, views);

    }

サービスクラスでは、必要な変更を行った後、OnStart()メットフッドでstopSelf()を使用できます。

于 2013-02-15T10:42:54.533 に答える