android开发中遇到的几个问题
安卓保持会话在线:
可以用sharePerference在登录的时候保存登陆标记,然后可以在多个活动去这个参数判断。理论上应该没问题
可以保存到SharePreferences中,每次程序打开时,先检查SharePreferences中有没有要自动登陆的账号,有直接读取进行登陆操作,登陆成功后可以将需要的信息保存在Application中,Application的生命周期和应用程序的生命周期一样的,只要应用程序的进程不退出,Application中的对象就不会销毁
当Android应用程序访问WEB服务器的时候,我们为了与服务器保持同一会话,也就是说当前登录用户与服务器的交互是在同一个SessionId下。
当我们登录成功的时候,可以通过HTTP请求获取到Cookie信息,其中包括会话的SessionId,同时也可以自己将SessionId放入Json中返回。Session我们可以用一个静态变量来存放,每次向服务器发送请求的时候将SessionId带过去,服务器会自动检验这个SessionId有没有失效。
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(访问地址);
httpPost.setHeader("Cookie", "JSESSIONid=" + 我们在静态变量里存放的SessionId);
HttpResponse httpResponse = httpclient.execute(httpPost);
这样就可以将SessionId带过去了。
如果 是 HttpURLConnection 那么设置
httpURLConnection.setRequestProperty("("Cookie", "JSESSIONid=" + 我们在静态变量里存放的SessionId");
httpURLConnection.getOutputStream();
--------------------------------------------------------------
在Android开发中通过localhost或127.0.0.1访问本地服务器时,会报java.net.ConnectException: localhost/127.0.0.1:8083 -Connection refused异常。
为什么会报这个异常呢?因为Android模拟器本身把自己当做了localhost或127.0.0.1,而此时我们又通过localhost或127.0.0.1访问本地服务器,所以会抛出异常了。
在网上查了下,在模拟器上可以用10.0.2.2代替127.0.0.1和localhost;
另外如果是在局域网环境可以用192.168.0.x或者192.168.1.x(根据具体配置)连接本机。在局域网环境为了保守起见,我们可以通过Android代码来获取本机的IP,接下来就通过代码演示怎么获取Android能访问本地服务器的IP
-------------------------------------------------------------------
android项目每次备份的时候将bin目录下的文件手动删除就行了,
-------------------------------------------------------------------
在android 项目中bin目录下的AndroidManifest.xml文件中添加uses-prmisson,结果以保存中丢失添加的内容,也就是无法保存,一直不知道为啥,后来发现在根目录下也有一个同样的文件,于是直接在他下面添加,保存,唉?成功了,在看bin目录的同样文件,竟然也有了,看来bin目录的文件时自动生成的,修改配置什么的应该在根目录下的AndroidManifest.xml中修改。
后查阅才明白,bin目录的内容都是自动生成的。
----------------------------------------------------------------------
MyEclipse_android解决项目不能运行在模拟器上
今天遇到个问题,项目写好了,但是右键run as选择android application,程序没有反应,模拟器也不运行,怎么点都没用。
后来在run as选择run configurations,双击android application在new_configuration界面里面点击browse选择你的程序,点击run就能够在模拟器里面运行你的程序了!
-----------------------------------------------------------------------
Android开发中,项目打包如果报错,如下操作:
右击项目--属性---跳出页面左侧---Builders--去掉前三个复选框上的钩,ok,但是这样依赖以后如果重新修改该项目,比如修改了string.xml文件,那么R.java是无法自动更新新加入到string.xml中的字符的,此时又需要把复选框勾上,然后重新刷新。
网上解决方案:
一般会有两种情况:
1,xml文件中的格式或内容有错误.
2,编译器所用的sdk是老版本,
出现第一个错误,只要修改xml文件保存即可,
如果出现第二种情况,要在eclipse的工具栏 选择Project下的 Build Automaticaly ,将上面的勾勾掉
---------------------------------------------------------------------------------------------------------