1.MobilePlayer 總結(jié)1

wm

1.

handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                //兩秒鐘后執(zhí)行到這里
                //運行在主線程中
                startActivity();
                Log.e(TAG,"當(dāng)前線程的名字: " + Thread.currentThread().getName());
            }
        },2000);

可以延時執(zhí)行一個線程围来,在兩秒鐘后才執(zhí)行這個函數(shù)攻晒。
注意:這個線程是運行在主線程中的,handler中的線程是運行在主線程中的洽议。
Thread.currentThread().getName() :得到當(dāng)前線程的名稱

2.

@Override
    public boolean onTouchEvent(MotionEvent event) {
        Log.e(TAG,"onTouchEvent == Action" + event.getAction());
        startActivity();
        return super.onTouchEvent(event);
    }

重寫onTouchEvent()函數(shù)偿衰,實現(xiàn)點擊執(zhí)行里面的函數(shù)挂疆,這里會執(zhí)行兩次,down一次下翎,up一次缤言。

3.

@Override
    protected void onDestroy() {
        //把所有的消息和回調(diào)移除
        handler.removeCallbacksAndMessages(null);
        super.onDestroy();
    }

handler.removeCallbacksAndMessages(null); 注意這一句是把所有的handler消息都移除掉。

4.用RadioGroup和RadioButton來做底部導(dǎo)航欄

rg_bottom_tag.setOnCheckedChangeListener(new MyOnCheckedChangeListener());

設(shè)置RadioGroup的點擊的監(jiān)聽

rg_bottom_tag.check(R.id.rb_video);

設(shè)置RadioGroup的默認(rèn)選中

SystemClock.sleep(2000); //休眠兩秒

可以讓線程休眠兩秒鐘

5.

從本地的SD卡得到數(shù)據(jù)有兩種方法
1.遍歷SD卡數(shù)據(jù)的后綴名(比較慢)
2.從內(nèi)容提供者里面獲取數(shù)據(jù)(推薦)
ContentResolver resolver = context.getContentResolver();

                Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;

                String[] objs = new String[] {
                        MediaStore.Video.Media.DISPLAY_NAME, //視頻的名稱
                        MediaStore.Video.Media.DURATION,  //視頻的時長
                        MediaStore.Video.Media.SIZE,  //視頻的大小
                        MediaStore.Video.Media.DATA,  //視頻的絕對路徑
                        MediaStore.Video.Media.ARTIST  //視頻的演唱者
                };
     
                Cursor cursor = resolver.query(uri,objs,null,null,null);
                if (cursor != null) {
                    while (cursor.moveToNext()) {

                        MediaItem mediaItem = new MediaItem();

                        String name = cursor.getString(0); //視頻的名稱
                        mediaItem.setName(name);

                        long duration = cursor.getLong(1); //視頻的時長
                        mediaItem.setDuration(duration);

                        long size = cursor.getLong(2);  //視頻的大小
                        mediaItem.setSize(size);

                        String data = cursor.getString(3); //視頻的絕對路徑
                        mediaItem.setData(data);

                        String artist = cursor.getString(4);  //視頻的演唱者
                        mediaItem.setArtist(artist);

                        mediaItems.add(mediaItem);
                    }

                    cursor.close();
                }

這一段代碼是將手機(jī)中的視頻查詢出來视事。

Formatter.formatFileSize(context,mediaItem.getSize())

這個公式可以將獲取到的視頻大小byte的格式轉(zhuǎn)化為MB的形式胆萧。

6.

//1.調(diào)起系統(tǒng)所有的播放 (隱式意圖)
 Intent intent = new Intent();
 intent.setDataAndType(Uri.parse(mediaItem.getData()),"video/*");
 context.startActivity(intent);
//2. 調(diào)用自己寫的播放器 (顯式意圖)
Intent intent = new Intent(context, SystemVideoPlayer.class);
intent.setDataAndType(Uri.parse(mediaItem.getData()),"video/*");
context.startActivity(intent);

第二行傳遞的是一個Uri。接收的時候也要是Uri接收俐东。

3. 傳遞對象數(shù)據(jù)---序列化
Intent intent = new Intent(context, SystemVideoPlayer.class);
Bundle bundle = new Bundle();
bundle.putSerializable("videolist", (Serializable) mediaItems);
intent.putExtras(bundle);
intent.putExtra("position",position);
context.startActivity(intent);

傳遞對象的時候跌穗,要將對象進(jìn)行序列化操作,然后放到Bundle里面進(jìn)行傳遞虏辫。

7 .

//移除消息(單個)
handler.removeMessages(PROGRESS);
//延遲一秒再發(fā)送一個消息
handler.sendEmptyMessageDelayed(PROGRESS, 1000);

8

android:configChanges="keyboardHidden|screenSize|orientation"

橫豎屏切換的時候蚌吸,生命周期不切換

android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

第一個默認(rèn)是橫屏
第二個去除橫屏(全屏)時的TitleBar,但是活動必須繼承Activity

Activity和服務(wù)交互的方式:
廣播砌庄,Intent羹唠,Handler,接口回調(diào)娄昆,Appliaction佩微,EventBus,AIDL萌焰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哺眯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子杆怕,更是在濱河造成了極大的恐慌族购,老刑警劉巖壳贪,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異寝杖,居然都是意外死亡违施,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門瑟幕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磕蒲,“玉大人,你說我怎么就攤上這事只盹±蓖” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵殖卑,是天一觀的道長站削。 經(jīng)常有香客問我,道長孵稽,這世上最難降的妖魔是什么许起? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮菩鲜,結(jié)果婚禮上园细,老公的妹妹穿的比我還像新娘。我一直安慰自己接校,他們只是感情好猛频,可當(dāng)我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛛勉,像睡著了一般鹿寻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上董习,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天烈和,我揣著相機(jī)與錄音,去河邊找鬼皿淋。 笑死招刹,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的窝趣。 我是一名探鬼主播疯暑,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哑舒!你這毒婦竟也來了妇拯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎越锈,沒想到半個月后仗嗦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡甘凭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年稀拐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丹弱。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡德撬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出躲胳,到底是詐尸還是另有隱情蜓洪,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布坯苹,位于F島的核電站隆檀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏北滥。R本人自食惡果不足惜刚操,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一闸翅、第九天 我趴在偏房一處隱蔽的房頂上張望再芋。 院中可真熱鬧,春花似錦坚冀、人聲如沸济赎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽司训。三九已至,卻和暖如春液南,著一層夾襖步出監(jiān)牢的瞬間壳猜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工滑凉, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留统扳,地道東北人。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓畅姊,卻偏偏與公主長得像咒钟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子若未,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容