看完郭大神的第一行代码,自己开发一个小程序遇到困难,求业界大牛指点迷津

qq_25532557 2016-04-13 03:44:22

String provider;
private Handler handler = new Handler(){
public void handleMessage(Message msg){
String response =(String) msg.obj;
TextView tv = (TextView) findViewById(R.id.tv);
tv.setText(response+"ceshi");
}
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//LocationTask1 tsk = new LocationTask1();
//tsk.execute();
new Thread(new Runnable(){
public void run(){
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
List<String> providerList = locationManager.getProviders(true);
if(providerList.contains(LocationManager.NETWORK_PROVIDER)){
provider= LocationManager.NETWORK_PROVIDER;
}
else{
Toast.makeText(MainActivity.this,"No Provider use",Toast.LENGTH_SHORT).show();
return;//根据Toast提醒用户,在之后在判断Provier开启没有;
}
Location location = locationManager.getLastKnownLocation(provider);
if(location!=null){
Double lat;
lat= location.getLatitude();
Message message = new Message();
message.obj=lat.toString();
handler.sendMessage(message);
}
//locationManager.requestLocationUpdates(provider,5000,1,locationListener);
}
}).start();
}为什么如果设备没有开启位置服务,程序就会闪退,解决的办法是什么,求各位大神支招!最好有详细原理
...全文
197 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wei220000 2016-04-14
  • 打赏
  • 举报
回复
try catch。catch的时候抛出让用户开启位置服务。
AgBaoの未来 2016-04-14
  • 打赏
  • 举报
回复
invalid provider:null 6楼说的有道理,定位有GPS和NETWORK,<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 看看有没有加这个权限!
silenccce 2016-04-13
  • 打赏
  • 举报
回复
可能你忘了申请位置服务的权限,所以拿不到数据。
筱蒙 2016-04-13
  • 打赏
  • 举报
回复
解决闪退问题: 在子线程中添加 Looper.prepare(); 和 Looper.loop(); 试试吧
qq_25532557 2016-04-13
  • 打赏
  • 举报
回复
引用 3 楼 ccccccccccc12345 的回复:
Toast.makeText(MainActivity.this,"No Provider use",Toast.LENGTH_SHORT).show(); return;//根据Toast提醒用户,在之后在判断Provier开启没有; 能在run里toast??????????
,我是菜鸟...............,不过去了Toast,同样也闪退
ccccccccccc12345 2016-04-13
  • 打赏
  • 举报
回复
Toast.makeText(MainActivity.this,"No Provider use",Toast.LENGTH_SHORT).show(); return;//根据Toast提醒用户,在之后在判断Provier开启没有; 能在run里toast??????????
qq_25532557 2016-04-13
  • 打赏
  • 举报
回复
引用 1 楼 Acmen99 的回复:
建议楼主把闪退日志贴出来!
AgBaoの未来 2016-04-13
  • 打赏
  • 举报
回复
建议楼主把闪退日志贴出来!

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧