編輯:關於Android編程
廣播
Android中:系統在運行的過程中,會產生很多的事件,比如:電量的改變,收發短信,撥打電話,屏幕解鎖,開機等,系統都會發送相應的廣播,系統根據發送的廣播來判斷相應的事件並執行相應的代碼,使用廣播接收著就可以收聽廣播。
廣播接收者
廣播接收者簡單地說就是接收廣播意圖的Java類,此Java類繼承BroadcastReceiver類,重寫:
public void onReceive(Context context,Intent intent),其中intent可以獲得傳遞的數據;
廣播意圖就是通過Context.sendBroadcast(Intent intent)或Context.sendOrderedBroadcast(Intent intent)發送的意圖,通過這個語句,能夠廣播給所有滿足條件的組件,比如intent設置了action="android.intent.action.NEW_OUTGOING_CALL",則所有在AndroidManifest.xml中設置過的廣播接收者都能夠接收到廣播;
創建廣播接收者
1.定義java類繼承BroadcasterReceiver
2.在清單文件愛你中定義receiver節點,定義name屬性,指定廣播接受著java類的全類名
3.在intent-filter的節點中,指定action子節點,action的值必須跟要接受的廣播中的action匹配,比如,如果要接收打電話廣播,那麼action的值
action="android.intent.action.NEW_OUTGOING_CALL",因為打電話廣播中包含的值就是這個,定義廣播接收者的時候必須action必須與其匹配,才能接收到這個廣播
4.即使廣播接收者所在的進程已經被關閉,當系統發出的廣播中的action跟該廣播接收者的action匹配的時候,系統會啟動該廣播接收者所在的進程,並把廣播發給該廣播接收者
配置權限:
清單文件配置廣播(和activity是同級節點):
activity_main.xml
MainActivity.java
package com.ldw.ipdialer; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View v){ EditText et = (EditText) findViewById(R.id.et); //ip保存在本地 SharedPreferences sp = getSharedPreferences("ip", MODE_PRIVATE); sp.edit().putString("ipNumber", et.getText().toString()).commit(); } }
package com.ldw.ipdialer; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; public class callReceiver extends BroadcastReceiver { //接受廣播的時候調用 @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub System.out.println("打電話廣播"); //打電話廣播中會攜帶撥打電話的號碼 String number = getResultData(); //獲取到SharedPreferences保存的值 SharedPreferences sp = context.getSharedPreferences("ip", Context.MODE_PRIVATE); String ipNumber = sp.getString("ipNumber", ""); //ip線路號碼添加到用戶號碼的前面 number = ipNumber + number; //把新的號碼重新放到廣播中 setResultData(number); } }
MediaRecorder除了可以用於錄制音頻,還可用於錄制視頻。關於MediaRecorder的詳解大家可以參考《Android開發之MediaRecorder類詳解》
開發項目,多人合作開發變得越來越重要了,在此同時,使用git作為協同工具也是越來越多,在此,介紹一下egit取消文件版本控制的方法。(egit即為eclipse中的git
1、概述開發Android的同學都知道sdk已經為我們提供了一個SQLiteOpenHelper類來創建和管理SQLite數據庫,通過寫一個子類去繼承它,就可以方便的創建
先看效果圖: @Override public void onCreate(Bundle savedInstanceState) { super.onC