Android - Tamagotchi游戏后台服务

时间:2015-05-21 12:10:09

标签: android android-intent unity3d android-service

我尝试使用Unity for Android构建一个Tamagotchi游戏。即使游戏关闭,Tamagotchi的食物属性也应该下降。

所以我的方法是构建一个包含变量的IntentService,如果需要增加和减少它们。出于Batterie的原因,如果应用程序关闭,我将使用警报管理器每10分钟启动一次服务。如果应用程序启动它将绑定服务,因此它永远不会关闭,我可以获得变量。

有没有更有效的方法来处理这个问题?我不希望我的应用程序耗尽太多电量。

€: 如果食物变低,它也应该显示通知。

2 个答案:

答案 0 :(得分:3)

确实有一种更有效的方法可以解决这个问题。

为什么不在用户关闭应用程序时保存时间戳并计算用户再次打开应用程序时所经过的时间? 然后你可以计算你已经完成的新食物属性。

编辑:如果您想在食物不足时显示通知,则需要警报管理器。

以下是一些示例代码:

public static void registerAlarm(Context context) {
Intent i = new Intent(context, YOURBROADCASTRECIEVER.class);

PendingIntent sender = PendingIntent.getBroadcast(context,REQUEST_CODE, i, 0);

// We want the alarm to go off 3 seconds from now.
long startTime = SystemClock.elapsedRealtime();
startTime += 60000;//start 1 minute after first register.

// Schedule the alarm!
AlarmManager am = (AlarmManager) context.getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, startTime, 900000, sender); // 15min interval

}

答案 1 :(得分:2)

您还可以在游戏关闭前计算Tamagotchi何时会感到饥饿,并将警报设置为仅显示通知..除非游戏再次打开以便您清除所有通知。