Android 应用程序关闭的时间
我有一个游戏,我想每隔几个小时发送一个通知,说明该应用程序已关闭而未打开。发出这些通知不是问题,但我不知道如何计算应用程序未被使用的时间?我应该像应用程序首选项类一样保存在本地文件中吗?还是有不同的方法Android 应用程序关闭的时间,android,time,notifications,Android,Time,Notifications,我有一个游戏,我想每隔几个小时发送一个通知,说明该应用程序已关闭而未打开。发出这些通知不是问题,但我不知道如何计算应用程序未被使用的时间?我应该像应用程序首选项类一样保存在本地文件中吗?还是有不同的方法 例如:我玩了这个游戏,然后关闭了它。我有一天没有碰游戏,然后我收到一个通知“回来胡说八道,玩胡说八道”当你退出你的应用程序时,使用AlarmManager设置警报,你将在你的receiver类中收到警报,如下代码所示 AlarmManager alarmManager = (AlarmManag
例如:我玩了这个游戏,然后关闭了它。我有一天没有碰游戏,然后我收到一个通知“回来胡说八道,玩胡说八道”当你退出你的应用程序时,使用AlarmManager设置警报,你将在你的receiver类中收到警报,如下代码所示
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, ALARM_ID_XYZ, new Intent(
FILTER_TIME_ABC), PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1*60*60*1000, 1*60*60*1000, pendingIntent);
在您的应用程序上,使用以下代码启动并取消所有警报:
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, ALARM_ID_XYZ, new Intent(
FILTER_TIME_ABC), PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pendingIntent);
如果使用始终运行的服务,则无需使用Alarmmanager。处理程序更简单。 使用共享首选项和类似的计算
// Calendar.getInstance().getTime() This is previous time
Date prevTime = Calendar.getInstance().getTime();
Date currentTime = null;
SimpleDateFormat formatter = new SimpleDateFormat(
"EEE MMM dd HH:mm:ss zzzz yyyy");
currentTime = formatter.parse( get value from share preference);
if (((prevTime.getTime() - currentTime.getTime())
/ (60 * 1000) % 60) < 30)
{
//Call Your function
}
//Calendar.getInstance().getTime()这是上一次
Date-prevTime=Calendar.getInstance().getTime();
日期当前时间=空;
SimpleDataFormat格式化程序=新SimpleDataFormat(
“EEE MMM dd HH:mm:ss zzzz yyyy”);
currentTime=formatter.parse(从共享优先权中获取值);
if(((prevTime.getTime()-currentTime.getTime())
/ (60 * 1000) % 60) < 30)
{
//调用你的函数
}
希望这能帮助你在这里优先选择我的首选,简单有效。你有没有从服务器上控制应用程序是否被连接了?请参考这个“我想每隔几个小时发送一个通知”->请考虑UX方面的事情。如果每隔几个小时我就收到一次催人的通知,我会卸载这样的应用程序,不管它实际上有多好,我相信大多数人也会这样做。@2当然会的。不打算每隔几个小时做一次,但如果不使用,大约每两天做一次。如果有人使用的服务总是在运行,则无需使用Alarmmanager。处理程序更简单。@MahaKhan服务可能会被杀死…最好使用AlarmManager。太棒了!但是,当有人关闭应用程序时,我如何获得时间?在停止侦听器上?还是背压?