安卓开发遇到的几个问题(网络定位,从网络获取所有省/市,SQLite,Service等)

本文记录了安卓开发中遇到的定位问题和SQLite数据库操作难题。针对网络定位,作者需要实现可动态更新的地址数据,避免使用静态的.db文件或arrays.xml。通过修改现有demo,成功实现了网络获取地址。在SQLite操作中遇到数据库锁定问题,通过启动Service解决。此外,还提醒开发者注意在AndroidManifest.xml中注册Service,以防止服务无法开启。
摘要由CSDN通过智能技术生成

//本文是作者原创文章,其中的代码部分引用了网上现有的demo,感谢大神们无私的奉献各种demo,转载请注明出处

今天在写公司的一个项目,其中用到了定位的功能,想到网上有很多现成的demo,兴致冲冲的找了很多demo,都没有想要的效果,网上现有的demo获取数据的方法大致分为两种:
<1> 将包含了地址信息的数据库文件(.db文件)存在项目的assets文件里面。
<2> 将地址信息放在arrays.xml文件里面,例如:

                 <string-array name="city">
                        <item>北京</item>
                        <item>成都</item>
                        <item>重庆</item>
                        <item>广州</item>
                        <item>杭州</item>
                        <item>南京</item>
                        <item>上海</item>
                        <item>深圳</item>
                        <item>天津</item>
                        <item>武汉</item>
                        <item>西安</item>
                    </string-array>

然而这些都不是我想要的效果,Boss要求地址的数据在后期是可以修改的,
所以获取地址就必要链接网络服务器,在网上找了个仿美图的地址选择器,页面效果如下:

仿美团地址选择器

然而打开demo后就绝望了,
自动定位的功能只能看不能用就算了,用的竟然是第二种方法存数据…..
那岂不是说我得将300多条数据一点点的写到arrays.xml文件里面?于是仔细的看了该demo的代码,修改如下:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Build;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SectionIndexer;
import android.widget.TextView;
import android.widget.Toast;

import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
import com.example.myapplication.R;
import com.example.myapplication.model.bean.CitySortModel;
import com.example.myapplication.model.db.CityHelper;
import com.example.myapplication.model.utils.ACache;
import com.example.myapplication.model.utils.PortUtils;
import com.example.myapplication.model.utils.SystemBarTintManager;
import com.example.myapplication.view.activity.BaseActivity;
import com.example.myapplication.view.selectcity.view.EditTextWithDel;
import com.example.myapplication.view.selectcity.view.PinyinComparator;
import com.example.myapplication.view.selectcity.view.PinyinUtils;
import com.example.myapplication.view.selectcity.view.SideBar;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.x;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;

/*
* 城市选择和定位
* */
public class CityActivity extends BaseActivity {
   
    private String TAG = "CityActivity";
    private ListView sortListView;
    private SideBar sideBar;
    private TextView dialog, mTvTitle;
    private SortAdapter adapter;
    private EditTextWithDel mEtCityName;
    private List<CitySortModel> SourceDateList;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_31699831

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>