小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

android 源碼 Music 學習過程(隨筆版)(ing)

 昵稱10504424 2013-02-19

2013.01.10 下午

整體分析:

由一個包,27個文件組成。

其中有7個activity分別由7個文件組成,其中一個activity是以dialog形式顯示,它們是:

1. MusicBrowserActivity.java

程序的入口,由四個tab組成:browse_menu藝術(shù)家,albums_menu專輯,tracks_menu歌曲,playlists_menu播放列表

2.ArtistAlbumBrowserActivity.java

藝術(shù)家界面

3.AlbumBrowserActivity.java

專輯界面

4.TrackBrowserActivity.java

歌曲界面

5. PlaylistBrowserActivity.java

播放列表界面

6. MediaPlaybackActivity.java

正在播放界面

7.CreatePlayList.java

新建播放列表界面,一dialog的形式顯示

遇到的問題

1. 什么是TAB,以及TAB相關(guān)的知識?

解: google一下得:

tab 其實是一個選線選項卡布局,依托于TabHost

。。。。。。

TabHost 對象用TabActivity.getTabHost()獲取。

暫時先了解這么些吧。。。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2013.01.11 下午

1.android通訊機制 AIDL

一、在同一包下建一后綴為aidl文件,

內(nèi)容有引入所在的包,定義一個名稱和文件名相同的接口,

接口里寫明要提供服務(wù)的方法,并給參數(shù)注明in 還是out

二、 在同一包下建一繼承service類的類,實現(xiàn)aidl里的所有方法

三、在AndroidManifest.xml 文件中注冊 service

形如:



然后就可以調(diào)用了,基本上就是這個流程。




---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2013.02.03 下午


重新從入口類,即,MusicBrowserActivity.java 分析Music。

看完該類后,簡要總結(jié)一下該類的作用:

1. 該 Activity 其實沒有自己的view顯示,

主要是通過調(diào)用 MusicUtil.java 的 activateTab(Activity, int) 方法選擇啟動哪一個Activity

  1.     static void activateTab(Activity a, int id) {  
  2.         Intent intent = new Intent(Intent.ACTION_PICK);  
  3.         switch (id) {  
  4.             case R.id.artisttab:  
  5.                 intent.setDataAndType(Uri.EMPTY, "vnd.android.cursor.dir/artistalbum");  
  6.                 break;  
  7.             case R.id.albumtab:  
  8.                 intent.setDataAndType(Uri.EMPTY, "vnd.android.cursor.dir/album");  
  9.                 break;  
  10.             case R.id.songtab:  
  11.                 intent.setDataAndType(Uri.EMPTY, "vnd.android.cursor.dir/track");  
  12.                 break;  
  13.             case R.id.playlisttab:  
  14.                 intent.setDataAndType(Uri.EMPTY, MediaStore.Audio.Playlists.CONTENT_TYPE);  
  15.                 break;  
  16.             case R.id.nowplayingtab:  
  17.                 intent = new Intent(a, MediaPlaybackActivity.class);  
  18.                 a.startActivity(intent);  
  19.                 // fall through and return   
  20.             default:  
  21.                 return;  
  22.         }  
  23.         intent.putExtra("withtabs"true);  
  24.         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);// 參數(shù)含義是:如果所要啟動的activity已經(jīng)啟動,   
  25.                                                         // 則finish掉其上的所有activity   
  26.         a.startActivity(intent);  
  27.         a.finish();  
  28.   
  29.         /* 
  30.          *     該方法必須用于startActivity 和 finish 方法之后。 
  31.          *  該方法作用:第一個參數(shù)為第一個Activity離開時的動畫,第二參數(shù)為所進入的Activity的動畫效果 
  32.          */   
  33.         a.overridePendingTransition(00);        
  34.     }  
分析時遇到的問題:見代碼注釋

2. 連接











    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多