Первое местоположение GPS и вставка его в базу данных замедляет работу приложения для Android
Я строю приложение для Android, которое должно использовать GPS для получения местоположения, а затем местоположение вставляется в базу данных. При каждом обнаружении местоположения, которое должно быть вставлено в базу данных, приложение замедляется и появляется уведомление: приложение не отвечает. Хотите выйти? и т. д. (особенно это происходит, когда найдено первое местоположение).
Вот как я пытался сделать вставку в базу данных, чтобы избежать отставания:
1.
WebClient client = new WebClient();
Uri uri = new Uri("...");
NameValueCollection parameters = new NameValueCollection();
parameters.Add("...","...");
parameters.Add...
try
{
client.Headers["Content-Type"] = "application/x-www-form-urlencoded";
client.UploadValuesAsync(uri,"POST",parameters);
}
catch (Exception ex)
{
Log.Debug("ERROR",ex.Message);
}
2.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("...");
string responseString = string.Empty;
var postData = "...=" + ...;
postData += ...;
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
try
{
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
}
catch (Exception ex)
{
Log.Debug("ERROR",ex.Message);
}
Оба способа имеют одинаковый результат: приложение отстает. Что я могу сделать, чтобы предотвратить эту проблему?
Любая помощь приветствуется.
ОБНОВИТЬ
У меня есть фоновый сервис, который получает местоположение и отправляет его с вещательным приемником на передний план. Когда местоположение получено на переднем плане (т.е. в действии), я вызываю метод, который отправляет местоположение в веб-сервис (который написан на PHP). PHP скрипт вставляет отправленные значения в базу данных.