亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android攻城獅的第二門課(第3季)

難度初級
時長 6小時 0分
學習人數
綜合評分9.57
162人評價 查看評價
9.9 內容實用
9.5 簡潔易懂
9.3 邏輯清晰
  • 如圖,是獲取 WIFI 狀態,然后做開啟或關閉 WIFI 的操作。 同樣要先獲取權限: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 讀取WiFi狀態 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 改變WiFi狀態
    查看全部
  • 安卓系統默認對于一些比較危險的操作或者高權限的操作都要求必須具有權限才能執行,例如發送短信、讀取通訊錄、打開/關閉WiFi等等。 例如這節課的示例是要查看網絡狀態,就需要添加相應權限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses> 添加這個權限后,用戶在安裝這個應用的時候,安裝界面就會提示該應用需要獲取網絡狀態。 判斷網絡是否連接: 編寫一個判斷網絡連接的類 isNetworkConnected(Context context),之所以要使用上下文作為參數,是因為使用系統服務要用到 context: public boolean isNetworkConnected(Context context) { // 判斷網絡的方法 if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager .getActiveNetworkInfo();// 獲取網絡連接狀態信息 if (mNetworkInfo != null) {// 如果不為空 return mNetworkInfo.isAvailable();// 返回網絡狀態屬于活動狀態 } } return false; }
    查看全部
  • SQLite的特點
    查看全部
  • 常用系統服務3
    查看全部
    0 采集 收起 來源:系統服務概述

    2017-06-08

  • 常用系統服務2
    查看全部
    0 采集 收起 來源:系統服務概述

    2017-06-08

  • 常用的系統服務
    查看全部
    0 采集 收起 來源:系統服務概述

    2017-06-08

  • 點擊事件 case R.id.bind://綁定服務 intent2=new Intent(MainActivity.this,MyBindService.class); startService(intent2);//StartService 和 BindService相結合實現服務(要在onDestroy銷毀),去掉就是單獨的BinderService。 bindService(intent2, connection, BIND_AUTO_CREATE);//第二個參數是連接對象,第三個參數是必須要填的一個常量,沒寫的話將無法自動創建Service。 break; case R.id.Unbind:// 解綁服務 unbindService(connection); break; 單純使用 BindService還是有很多隱患的。實際上可以結合 StartService 和 BindService。如圖,使用同一個通信 intent2 ,就可以實現。 但比較麻煩的是,你打開了服務,就要相應地去關閉服務,所以要在 MainActivity 中重寫 onDestroy()方法: @Override protected void onDestroy() { // TODO Auto-generated method stub stopService(intent2); unbindService(connection);//解綁 super.onDestroy(); } 這樣在 Activity 被銷毀的時候,就會停止服務,并解除了綁定。這樣一來,即使程序被強制退出,也不會報錯(之前會報一些和Service相關的錯)。 注意:解綁只能使用一次,多次使用會報錯,另外當啟動源在沒有解綁的情況下退出程序也會報錯。 摘自評論區: bindService();方法中的第二個參數必須實現,ServiceConnection conn = new ServiceConnection(){};里邊有兩個方法可以暫時不管。如果寫成null是會報錯的。
    查看全部
    1 采集 收起 來源:Bind啟動

    2017-06-08

  • 在MyBindService類中: //IBinder接口不能直接用,重寫一個類來繼承Binder類把他作為IBinder參數返回即可 public class MyBinder extends Binder { public MyBindService getService(){//獲取服務,并返回給服務本身 return MyBindService.this; } } //通過IBinder接口實例,返回一個ServiceConnection對象給啟動預案 @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub Log.i("info", "Service--onBind()"); return new MyBinder();//新建的MyBinder作為IBinder的返回值 } 在MainActivity類: MyBindService service; //通過ServiceConnection對象的相關方法可以得到Service對象,用來實現service端到客服端的綁定 ServiceConnection connection=new ServiceConnection() { //當啟動源跟Service的連接意外丟失的時候回調用這個方法,比如當Service崩潰或者被強行殺死了 @Override public void onServiceDisconnected(ComponentName name) { // TODO Auto-generated method stub } //當啟動源跟Service成功連接之后將會自動調用這個方法 @Override public void onServiceConnected(ComponentName name, IBinder binder) { // TODO Auto-generated method stub service=((MyBinder)binder).getService();//大類轉化為自身的小類,獲取內部類中的方法,從而獲得服務本身 } };
    查看全部
    0 采集 收起 來源:Bind啟動

    2018-03-22

  • service啟動式服務: 1、創建一個類繼承Service(后面該類將作為Intent通信的對象之一),實現幾個方法: public void onCreate() { // 由于只執行一次,一般把初始化操作放在這里 super.onCreate();//當服務被創建時,會執行該方法。 } public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, flags, startId);//當有開啟服務的命令時,會調用該方法。 } public void onDestroy() { super.onDestroy(); } // IBinder是一個抽象的方法,這里用不到 public IBinder onBind(Intent intent) { return null; } 3. 在配置文件中注冊服務 <service android:name=".MyStartService"/> 4. 如圖,編寫點擊事件: public void doClick(View view){ switch (view.getId()){ case R.id.btn_start: // 開始服務 intent1 = new Intent(this,MyStartService.class); // Intent 實現組件之間的通信,這里是Activity和Service之間。 startService(intent1); // 和以前的 stratActivity() 很類似。 break; case R.id.btn_stop: // 停止服務 stopService(intent1); break; } } 注意事項: 1.一個服務只能啟動一次。如果再次啟動,會調用onStartCommand方法 2.服務不能進行耗時操作,但是服務可以開辟線程來完成耗時操作 3.停止服務會調用onDestroy方法。但是如果再次停止服務,將什么都不會發生
    查看全部
    0 采集 收起 來源:Start啟動

    2018-03-22

  • 1. 本地服務(Local Service) - 應用程序內部 - startService(啟動服務)、stopService(在“啟動源”或者 Activity 中停止服務)、stopSelf(在Service停止服務)、stopSelfResult(在Service中停止服務),后面兩種都是服務的自我停止。 - bindService(綁定服務)、unbindService(解綁) 通過 startService 或者 bindService 都可以啟動服務。 2. 遠程服務(Remote Service) - Android系統內部的應用程序之間(不是手機之間) - 定義 IBinder 接口,通過它,把數據暴露出來,然后把數據提供給啟動源或者其他程序。 遠程服務只能通過 IBinder 去啟動服務。 -------------- 我們知道一個Activity是有生命周期的,并且必須在配置文檔中進行注冊。而Service和Activity是類似的,有類似的生命周期,也必須注冊。 繼承關系: Service 繼承 ContextWrapper,Activity 繼承 ContextThemeWrapper,二者共同擁有一個“祖宗類”——Context。 ------------------ 如圖所示是 Service 的兩種生命周期(分別以startService和bindService啟動)。 Start方式特點: - 服務跟啟動源沒有任何聯系 - 無法得到服務對象 Bind方式特點: - 通過 Ibinder 接口實例,返回一個ServiceConnection對象給啟動源 - 通過 ServiceConnection對象的相關方法可以得到Service對象
    查看全部
    0 采集 收起 來源:Servie概述

    2017-06-08

  • 組件篇——Service 當Android系統內存不足的時候,會殺死優先級別較低的Activity,而基本上Service的優先級要高于Activity,所以程序中如果含有 Service,那么該程序是很難被殺掉的,而且即使 Service 被殺掉,它也很容易自己再次啟動,除非人為去停掉。 ------------------- Service 本身不能做耗時操作(因為它運行在主線程)。耗時操作交給 Handle 或者 AsyncTask 去處理。
    查看全部
    0 采集 收起 來源:Servie概述

    2017-06-08

  • 怎么用好BroadcastRecevier
    查看全部
  • 異步廣播之所以又叫“粘滯性廣播”,是因為它的廣播會一直存在,不像其他廣播一用完就會被銷毀。所以這里的示例將采取“先發送廣播,后注冊接收者”,如果接收者還能接收到廣播,就能說明異步廣播的“粘滯性”。 注意:“粘滯性”是需要在配置文件中添加權限的: <uses-permission android:name="android.permission.BROADCAST_STICKY"></uses> 并且當我們用動態注冊時,我們應該在activity的ondestroy方法中銷毀,所以動態注冊的這些接收者本身,最好定義為全局變量,然后在方法中初始化。
    查看全部
  • 有序廣播的代碼和普通廣播差不多,不過sendOrderedBroadcast(intent2, null);后面null代表的是權限 在BC1和BC2中寫一個間的數據傳輸: BC1: Bundle bundle = new Bundle(); bundle.putString("test", "廣播處理的數據"); setResultExtras(bundle); BC2: Bundle bundle=getResultExtras(true);//接收數據 String s2=bundle.getString("test"); Log.i("info", "得到的處理結果是:"+s2);
    查看全部
  • //動態注冊優先于靜態注冊,但有局限性,必須要改程序啟動才有用 IntentFilter intentFilter=new IntentFilter("BC_ONE");//動態注冊所需的過濾器 BC2 bc2=new BC2();//動態注冊的對象 registerReceiver(bc2, intentFilter);//接收器的動態注冊
    查看全部

舉報

0/150
提交
取消
課程須知
本課程是Android開發課程的中后期部分,學習之前要求對一些知識點有一定的了解: 1、已經掌握了Java基礎 2、已經熟悉或者了解Android中的監聽事件原理 3、已經熟悉或者了解一種以上的數據庫,并掌握基本的SQL語句
老師告訴你能學到什么?
1、初步掌握Android手勢識別的原理以及實際使用 2、初步掌握Android的數據存儲方式 3、深度了解Android中的組件 4、熟悉了解Android常用的系統服務并對服務的使用有新的認識

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!