如何显示用户是否已在 android 内到达目的地?
How to show user if he has reached the destination in android?
最近开发了一个旅游领域的app。该应用程序的目的是向用户展示;从源到目的地的路径。当用户进入目的地 25 米范围内时,用户会收到通知/提醒,说明目的地就在附近。
我试图实现的目标:
在 onLocationChanged() 中,我一直在寻找目的地的范围,如果用户在范围内,notification/alert 将弹出。但是,当我测试该应用程序时,我发现当我在该范围内时,通知会可怕地淹没设备,因为显示 notification/alert 的条件是基于 onLocationChanged() 的,即随着位置的变化,循环执行完全相同的次数,用户会对应用感到厌烦。
此外,当我搜索其他位置时,该应用程序无法运行。它不显示目的地标记。第一次看到目的地标记,但后来的搜索没有显示目的地标记;我想知道为什么?!
这个问题困扰了我很久。请帮我解决这个问题!!
您可以检查通知显示的次数,例如在循环中
boolean notification_shown = false;
for(...)
{
if(!notification_shown)
{
//show notification
notification_shown = true;
}
else
{
//rest of your coding
}
}
这只会显示一次通知。如果您想显示通知的次数多于可以使用计数器的次数。喜欢
int counter = 0;
//increment it till you want and than stop
可能最好结合的两种可能的解决方案:一,使用静态对话框,这样您只有一个警报实例;二、一到达目的地就取消注册 onLocationChanged() 侦听器(第一次提醒用户)。
当你在 onLocationChange() 方法中使用循环时,在你的循环中取一个变量说 "count" 然后检查距离的条件。在特定条件成立后,然后增加计数。如果计数器得到 1,则弹出一个警报,然后退出循环。
整数计数=0;
public void onLocationChanged(Location locFromGps) {
if(locFromGps<=30)
{
如果(计数==1)
{
退出(0);
}
count++;
Toast.makeText(getApplicationContext(),"Location is near", 0).show();
}
}
最近开发了一个旅游领域的app。该应用程序的目的是向用户展示;从源到目的地的路径。当用户进入目的地 25 米范围内时,用户会收到通知/提醒,说明目的地就在附近。
我试图实现的目标: 在 onLocationChanged() 中,我一直在寻找目的地的范围,如果用户在范围内,notification/alert 将弹出。但是,当我测试该应用程序时,我发现当我在该范围内时,通知会可怕地淹没设备,因为显示 notification/alert 的条件是基于 onLocationChanged() 的,即随着位置的变化,循环执行完全相同的次数,用户会对应用感到厌烦。
此外,当我搜索其他位置时,该应用程序无法运行。它不显示目的地标记。第一次看到目的地标记,但后来的搜索没有显示目的地标记;我想知道为什么?!
这个问题困扰了我很久。请帮我解决这个问题!!
您可以检查通知显示的次数,例如在循环中
boolean notification_shown = false;
for(...)
{
if(!notification_shown)
{
//show notification
notification_shown = true;
}
else
{
//rest of your coding
}
}
这只会显示一次通知。如果您想显示通知的次数多于可以使用计数器的次数。喜欢
int counter = 0;
//increment it till you want and than stop
可能最好结合的两种可能的解决方案:一,使用静态对话框,这样您只有一个警报实例;二、一到达目的地就取消注册 onLocationChanged() 侦听器(第一次提醒用户)。
当你在 onLocationChange() 方法中使用循环时,在你的循环中取一个变量说 "count" 然后检查距离的条件。在特定条件成立后,然后增加计数。如果计数器得到 1,则弹出一个警报,然后退出循环。
整数计数=0;
public void onLocationChanged(Location locFromGps) {
if(locFromGps<=30) {
如果(计数==1) {
退出(0);
}
count++;
Toast.makeText(getApplicationContext(),"Location is near", 0).show();
}
}