我正在使用一个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和其他教程一样出色。