1

サービスがアクティブ化されたときに「アクティブ」シンボルを表示するアクティビティに ImageView があります。サービスが実行された後、ImageView は「非アクティブ」シンボルに戻ります。

サービスを開始する AlarManager:

    context = this;
    Intent intent = new Intent(context, AlarmReceiver.class);
            sender = PendingIntent.getBroadcast(context, INTENT_CODE, intent,
                    PendingIntent.FLAG_UPDATE_CURRENT);
            am = (AlarmManager) getSystemService(ALARM_SERVICE);
            am.set(AlarmManager.RTC_WAKEUP, calNew.getTimeInMillis(), sender);
setImage(active);

アラームマネージャー:

@Override
    public void onReceive(Context context, Intent intent) {

        Intent wakeupIntent = new Intent(context, WakeupActivity.class);
        context.startService(wakeupIntent);

    }

サービスの実行後にイメージを非アクティブに戻すにはどうすればよいですか? 新しい Runnable を作成してから、ハンドラーを使用して postDelayed(runnable, calNew.getTimeInMillis()) を作成しようとしました。実際にはうまくいきませんでした、何も起こりませんでした。これを行うより良い方法はありますか?

4

1 に答える 1

1

サービスの実行後にイメージを非アクティブに戻すにはどうすればよいですか?

ステップ 1: Android サポート パッケージをアプリケーションに追加します。

ステップ #2: アクティビティを に登録BroadcastReceiverLocalBroadcastManageronResume()で登録解除しonPause()ます。

LocalBroadcastManagerステップ #3:アクティビティの によってピックアップされるように、作業が完了したときにサービスにブロードキャストを送信させますBroadcastReceiver

この手法を示すサンプル プロジェクトを次に示します。

于 2012-06-16T22:18:12.963 に答える