在我的应用程序中,我有一个简单的按钮,启动第二个活动,启动一个微调器(如果那是相关的)并做一些http连接工作。第二个活动也可以由运行和侦听蓝牙连接的服务启动。
问题不在我的里程碑(2.1-update1)手机上,而是在运行2.3的同事手机上我相信。当他们按下按钮启动第二个活动(完全忽略服务部分)时,它将多次启动活动,当他们按下第二个屏幕时,他们降落在第二个屏幕的另一个实例上,而不是回到第一个活动
我提到服务部分有两个原因,第一个是我在实现服务时这个问题开始发生,第二个是因为我有一个单独的问题,即客户端没有在服务上正确管理这样当第二个活动通过服务而不是按钮启动时,我会看到这个行为。由于消息被发送到所有客户端(应该只有一个),我看到该服务产生了第二个活动的多次启动。但是再一次按下按钮,这个已修复的服务问题不应该负责。
现在,我已经制定了两件事来防止这种情况再次发生。我已经将第二个活动标记为singleTask(android:launchMode =“singleTask”),并注意到我已经将第二个活动作为startActivityForResult启动,但是当它返回时没有设置或使用它。这不会导致任何错误或任何错误,但我将其更改为普通的startActivity。
我没有物理访问另一部手机所以我无法将它连接到logcat或其他任何东西,就像它在其他地方的办公室一样。
另一部手机不再出现问题,但我担心我隐藏了问题而不是真正解决问题,并且想知道是否有人可以提供一些见解?
答案 0 :(得分:0)
在开始服务时,不同手机出现不同症状之前,我遇到了问题。有些人会多次重启(杀死并启动)服务,而其他人则不会。我猜测是因为你的朋友的手机多次重启服务,不管怎样你的活动每次重启都会被调用。
试试这个,你能在服务中显示通知吗?如果是这样的话:
startForeground(ID_NOTIFICATION, notification);
这使得服务始终在前台运行,并且不太可能被android杀死。