我正在开发具有记录 GPS 位置的 Activity 的应用程序。它注册 LocationListener 更新并将记录的 Location 存储到 SQLite 数据库。我的问题是当用户隐藏我的应用程序或运行另一个应用程序时,我的应用程序和录制活动进入后台并可能被系统杀死。因此,不存储 GPS 数据。我希望即使应用程序进入后台,我的应用程序和记录活动仍会记录 GPS 位置。如何做到这一点?
谢谢
我正在开发具有记录 GPS 位置的 Activity 的应用程序。它注册 LocationListener 更新并将记录的 Location 存储到 SQLite 数据库。我的问题是当用户隐藏我的应用程序或运行另一个应用程序时,我的应用程序和录制活动进入后台并可能被系统杀死。因此,不存储 GPS 数据。我希望即使应用程序进入后台,我的应用程序和记录活动仍会记录 GPS 位置。如何做到这一点?
谢谢
服务最适合您打算做的事情。
确保您启动服务STICKY
使用 Android 的其他组件,BroadcastReceiver
或者Service
可以在没有任何 GUI 的情况下在后台运行的组件。
public class UploadData extends BroadcastReceiver
{
private static LocationManager locationManager = null;
private static LocationListener locationListener = null;
@Override
public void onReceive(Context context, Intent intent)
{
// Create and AlarmManager that will periodically fetch the GPS
}
}
在服务的情况下,
public class myservice extends Service
{
LocationManager locationManager = null;
LocationListener loclistener = null;
// Bind it, Its important
public IBinder onBind(Intent intent)
{
return null;
}
@Override
public void onCreate()
{
// Use AlarmManager to fetch the GPS periodically.
}
}