关于CountDownTimer类的Onfinish()函数的通知

时间:2016-10-03 08:36:16

标签: android notifications

我正在尝试构建一个倒数计时器应用程序。我需要在Coundown结束为0时通知用户。我使用CountDownTimer类来计算。

这是我想要的:

当倒计时达到0时,通知将显示在状态栏上,通知调整振动(比方说200ms),当他们按下通知时,它会进入他们上次离开的应用页面(我不想打开任何活动)。此外,如果用户仍然在应用程序上并且状态栏上有通知,当他们按下它时,它会在他们所在的位置(不要开始任何活动)。

这是我已经尝试过的:

我尝试了onFinish()CountDownTimer函数的通知。它工作得很好但是当用户按下通知时它只是启动新的Activity而不是当前的应用页面。

我搜索解决方案已经有2天了,仍然没有可行的解决方案。 所以任何帮助将不胜感激!谢谢!

1 个答案:

答案 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>