我正在使用一个Arraylist来存储用户选择的警报位置,并正在通过广播公司将这些“位置”与用户在我的服务中的当前位置进行比较。

在强制使应用程序崩溃时,我能够重新启动服务,但是为进行比较而创建的Arraylist中的数据消失了,因此,该服务无法找到预先存在的数据。

我不知道我在想什么?这是我用于将位置和requestID保存在ArrayList中的方法。

private void addProximityAlert(double latitude, double longitude,int requestID) {
     Location alertLoc=new Location("C");
     IntentFilter filter = new IntentFilter(proximitysd);
     registerReceiver(mybroadcast, filter);
     Intent intent = new Intent(proximitysd);
     //Saving requestID in an array
     requestNo.add(Integer.valueOf(requestID));
     alertLoc.setLatitude(latitude);
     alertLoc.setLongitude(longitude);
     //Saving alertLoc in an array
     proximitylocation.add(alertLoc);
     PendingIntent proximityIntent = PendingIntent.getBroadcast(this,     requestID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
     Log.v("add Proximity ","Pendingintentcreated");
}

ps。我不打算使用locationmanager.addproximityalert。

最佳答案

您可以在应用程序强制关闭时使用共享首选项保存数据。 This和其他教程一样出色。

09-25 20:00