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 步:让您的活动在 in 中注册并在BroadcastReceiver中取消注册。LocalBroadcastManageronResume()onPause()

第 3 步:让您的服务LocalBroadcastManager在其工作完成时发送一个广播,以由活动的BroadcastReceiver.

这是一个演示此技术的示例项目。

于 2012-06-16T22:18:12.963 回答