Android 小项目之--数据存储【Network】(附源码)
生活随笔
收集整理的這篇文章主要介紹了
Android 小项目之--数据存储【Network】(附源码)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
將數據保存發送到電子郵件中備份,首要前提應該先在模擬器中設置好電子郵件帳戶,設置如下:
- 第一步,啟動模擬器,打開“菜單”,選擇“電子郵件”項,填寫相應帳號和密碼。
- 第二步,點擊NEXT,程序自動配置電子郵件相關信息。
- 第三步,配置完成后,輸入相應的名稱信息,即可設置完成,接下來程序會默認幫你導入你輸入郵箱帳號的相關信息
業務邏輯如下:示例中有一個文本框用來模擬用戶的信息,當程序退出的時候保存文本檔的信息,并轉到發送郵件的頁面,讓用戶把信息保存到郵箱 里面。具體代碼參考如下:
發送信息保存到郵箱 package?com.terry;import?android.app.Activity;?
import?android.content.Intent;
import?android.net.Uri;
import?android.os.Bundle;?
import?android.view.KeyEvent;
import?android.widget.EditText;
public?class?networkActivity?extends?Activity?{?
????private?EditText?myEditText;
????/**?Called?when?the?activity?is?first?created.?*/
????@Override
????public?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.main);?
????????
????????myEditText=(EditText)findViewById(R.id.myEditText4);?
????????
????}
????
????@Override
????public?boolean?onKeyDown(int?keyCode,?KeyEvent?event)?{
????????//?TODO?Auto-generated?method?stub
????????if(keyCode==KeyEvent.KEYCODE_BACK)
????????{
????????????//發送郵件地址
????????????Uri?uri=Uri.parse("mailto:285735942@qq.com");
????????????//創建intent
????????????Intent?it=new?Intent(Intent.ACTION_SENDTO,uri);
????????????it.putExtra(android.content.Intent.EXTRA_SUBJECT,?"網絡存儲");
????????????it.putExtra(android.content.Intent.EXTRA_TEXT,?myEditText.getText());
????????????startActivity(it);
????????????this.finish();
????????????return?true;
????????}
????????
????????return?super.onKeyDown(keyCode,?event);
????}
}
?
擴展
既然發送數據保存到網絡上,當然也可以獲得網絡上的數據,下面我們通過一個小例子來實現從網路上加載一個txt文件的小說程序 。如圖:
邏輯代碼如下:首先創建一個我們要訪問的URL地址,然后取鏈接的文件,循環把數據讀取出來。具體代碼參考如下:
?
讀取XML代碼參考 package?com.terry;import?java.io.BufferedInputStream;
import?java.io.InputStream;
import?java.net.URL;
import?java.net.URLConnection;
import?org.apache.http.util.ByteArrayBuffer;
import?android.app.Activity;
import?android.os.Bundle;
import?android.widget.TextView;
public?class?readxmlActivity?extends?Activity?{
????@Override
????protected?void?onCreate(Bundle?savedInstanceState)?{
????????//?TODO?Auto-generated?method?stub
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.readxml);
????????
????????TextView?tv=(TextView)findViewById(R.id.TextView01);
????????
????????String?msg="";
????????try?{
????????????URL?url=new?URL("http://www.az1314.com/txt/00.txt");?//要訪問的數據文件
????????????URLConnection?con=url.openConnection();
????????????InputStream?is=con.getInputStream();
????????????BufferedInputStream?bis=new?BufferedInputStream(is);
????????????ByteArrayBuffer?baf=new?ByteArrayBuffer(100);
????????????int?current=0;
????????????while?((current=bis.read())!=?-1)?{
?????????????????baf.append((byte)current);
????????????}
????????????msg=new?String(baf.toByteArray());
????????????
????????}?catch?(Exception?e)?{
????????????//?TODO:?handle?exception
????????????msg=e.getMessage();
????????}
????????tv.setText(msg);
????}
}
方法講解:
URL共有六種構造方法,分別如下:
- URL(String spec)
通過傳進來的字符串分析,創建一個新的URL實例。 - URL(URL context, String spec)
通過傳進來的字符串分析,創建一個新的URL實例。需要一個URL的參數 - URL(URL context, String spec, URLStreamHandler handler)
通過傳進來的字符串分析,創建一個新的URL實例 - URL(String protocol, String host, String file)
使用給定的參數創建一個URL實例,需要指定協議,主機文件名 - URL(String protocol, String host, int port, String file)
使用給定的參數創建一個URL實例,需要指定協議,主機,端口和文件名 - URL(String protocol, String host, int port, String file, URLStreamHandler handler)
使用給定的參數創建一個URL實例,需要指定協議,主機,端口、文件名和處理程序
URLConnection介紹:
- 用以來實現提供一個具有特定協議類的連接源。
- getInputStream? 主要用來讀取一個URLConnection的資源數據,返回一個InputStream,本文將使用這個方法獲取數據
在此不多介紹URLConnection此類,感興趣的朋友可以查看一下SDK。代碼如上,運行效果圖:
因為在模擬器運行。 出現亂碼了,如果你有真機不妨在真機上試試。
Tip: 訪問外部網絡需要在配置文件中給予權限,如果你沒有權限將會出現如下界面:
權限代碼如下:
?
??????android:versionCode="1"??????android:versionName="1.0">
????<application?android:icon="@drawable/icon"?android:label="@string/app_name">
????????<activity?android:name=".networkActivity"
??????????????????android:label="@string/app_name">
????????????
????????</activity>
????<activity?android:name=".readxmlActivity"><intent-filter>
????????????????<action?android:name="android.intent.action.MAIN"?/>
????????????????<category?android:name="android.intent.category.LAUNCHER"?/>
????????????</intent-filter></activity>
</application>
<uses-permission?android:name="android.permission.INTERNET"/>
?
至此四種數據存儲完結。
?
源碼下載:/Files/TerryBlog/NetworkdDemo.rar
轉載于:https://www.cnblogs.com/TerryBlog/archive/2010/06/20/1761411.html
總結
以上是生活随笔為你收集整理的Android 小项目之--数据存储【Network】(附源码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 胡泳:网络为王
- 下一篇: 2010中国杭州电子信息博览会通讯报道