我正在尝试构建一个倒数计时器应用程序。我需要在Coundown结束为0时通知用户。我使用CountDownTimer
类来计算。
这是我想要的:
当倒计时达到0时,通知将显示在状态栏上,通知调整振动(比方说200ms),当他们按下通知时,它会进入他们上次离开的应用页面(我不想打开任何活动)。此外,如果用户仍然在应用程序上并且状态栏上有通知,当他们按下它时,它会在他们所在的位置(不要开始任何活动)。
这是我已经尝试过的:
我尝试了onFinish()
类CountDownTimer
函数的通知。它工作得很好但是当用户按下通知时它只是启动新的Activity而不是当前的应用页面。
我搜索解决方案已经有2天了,仍然没有可行的解决方案。 所以任何帮助将不胜感激!谢谢!
答案 0 :(得分:2)
检查应用程序是否在后台运行,并推送新活动(在后台方案中)或保持不变(因为用户已在应用程序中)
boolean isInBackground = true;
ActivityManager am = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);
ActivityManager.RunningTaskInfo foregroundTaskInfo = am.getRunningTasks(1).get(0);
String foregroundTaskPackageName = foregroundTaskInfo .topActivity.getPackageName();
PackageManager pm = context.getPackageManager();
PackageInfo foregroundAppPackageInfo = pm.getPackageInfo(foregroundTaskPackageName, 0);
String foregroundTaskAppName = foregroundAppPackageInfo.applicationInfo.loadLabel(pm).toString();
if(!"Your App name".equalsIgnoreCase(foregroundTaskAppName) ){
isInBackground=false;
}
应用名称应该是strings.xml中的名称
<string name="app_name">Your app name</string>