第二章--探究活動(dòng)(activity)

1.使用intent在活動(dòng)間穿梭

intent一般可用于啟動(dòng)活動(dòng)舟山,啟動(dòng)服務(wù),發(fā)送廣播

  • 顯示intent :“意圖"明顯。
        Intent  intent=new Intent(HandleDbActivity.this,DetailActivity.class);
        startActivity(intent);

  • 隱式intent: 并不明確指出要啟動(dòng)哪一個(gè)活動(dòng),而是指定一系列更為抽象的action和category搪哪,然后交由系統(tǒng)分析并幫我們找出合適的活動(dòng)去啟動(dòng)。
       Intent  intent =new Intent("com.example.activitytest.ACTION_START");
       startActivity(intent);
  • 使用隱式Intent啟動(dòng)其他程序的活動(dòng):
    如調(diào)用系統(tǒng)瀏覽器:(打電話坪圾,發(fā)短信等各種API)
      Intent  intent=new Intent(Intent.ACTION_VIEW);
      intent.setData(Uri.parse("http://www.baidu.com"));
      startActivity(intent);

  • 活動(dòng)間的傳值
    firstactivity主要代碼:
  Intent  intent1=new Intent(MainActivity.this, SecondActivity.class);
  startActivityForResult(intent1,1);
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode){
            case 1:
                if (resultCode==RESULT_OK){
                    Log.i("buy",data.getStringExtra("data_return"));
                      Toast.makeText(MainActivity.this, data.getStringExtra("data_return"),Toast.LENGTH_SHORT).show();
                }
                break;
        }
    }

SecondActivity主要代碼:

                Intent  intent=new Intent();
                intent.putExtra("data_return","hello  mainactivity");
                setResult(RESULT_OK,intent);
                finish();

2.活動(dòng)的生命周期圖

Paste_Image.png

注: 需要查看android活動(dòng)的生命周期晓折,可跳轉(zhuǎn)一個(gè)普通的activity 和一個(gè)對話框式的activity,打印各個(gè)生命周期日志兽泄,即可明白流程漓概。

  • 內(nèi)存不夠活動(dòng)被回收了怎么辦
    活動(dòng)a跳轉(zhuǎn)至活動(dòng)b,當(dāng)內(nèi)存不夠的時(shí)候病梢,活動(dòng)a被回收了胃珍,再從活動(dòng)b點(diǎn)擊back鍵返回活動(dòng)a的時(shí)候,會從活動(dòng)a的onCreate()開始執(zhí)行蜓陌。 恢復(fù)臨時(shí)數(shù)據(jù)處理方式分兩步堂鲜,如下:
    第一步保存臨時(shí)數(shù)據(jù):
 @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        String  tempData="something you want to save";
        outState.putString("data_key",tempData);
        
    }

第二步取數(shù)據(jù):

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        if (savedInstanceState!=null){
            String tempdata=savedInstanceState.getString("data_key");
        }
}

3.活動(dòng)的啟動(dòng)模式

  • standard (標(biāo)準(zhǔn)模式) 默認(rèn)模式,每次都會新創(chuàng)建一個(gè)activity护奈。
  • singleTop 若活動(dòng)已經(jīng)在棧頂,不會再創(chuàng)建新的該活動(dòng)實(shí)例了哥纫。
  • singleTask 可解決重復(fù)創(chuàng)建棧頂活動(dòng)的問題霉旗,若該棧中存在該活動(dòng),則棧頂活動(dòng)出棧蛀骇,使該活動(dòng)位于棧頂厌秒,不必new一個(gè)新的活動(dòng)了。
  • singleInstance 啟用一個(gè)新的活動(dòng)棧擅憔,
  • 小技巧: 知曉當(dāng)前活動(dòng)名字代碼鸵闪,在BaseActivity的onCreate函數(shù)中打印名字
  @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_second);
       Log.i("baseactiivty",getClass().getSimpleName());
}

4.隨時(shí)退出多個(gè)活動(dòng)

  • 建立一個(gè)活動(dòng)管理器
public class ActivityCollector {
    public static List<Activity>  activities=new ArrayList<>();
    
    public  static  void  addActivity(Activity  activity){
          activities.add(activity);
    }
    
    public  static  void  removeActivity(Activity  activity){
         activities.remove(activity);
    }
    
    public static  void  finishAll(){
         for (Activity  activity :activities){
            if (!activity.isFinishing()){
                activity.finish();
            }
        }
        activities.clear();
    }
}

  • 在函數(shù)中使用
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        ActivityCollector.addActivity(this);            
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        ActivityCollector.removeActivity(this);
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市暑诸,隨后出現(xiàn)的幾起案子蚌讼,更是在濱河造成了極大的恐慌,老刑警劉巖个榕,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件篡石,死亡現(xiàn)場離奇詭異,居然都是意外死亡西采,警方通過查閱死者的電腦和手機(jī)凰萨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人胖眷,你說我怎么就攤上這事武通。” “怎么了珊搀?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵冶忱,是天一觀的道長。 經(jīng)常有香客問我食棕,道長朗和,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任簿晓,我火速辦了婚禮眶拉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘憔儿。我一直安慰自己忆植,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布谒臼。 她就那樣靜靜地躺著朝刊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜈缤。 梳的紋絲不亂的頭發(fā)上拾氓,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機(jī)與錄音底哥,去河邊找鬼咙鞍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛趾徽,可吹牛的內(nèi)容都是我干的续滋。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼孵奶,長吁一口氣:“原來是場噩夢啊……” “哼疲酌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起了袁,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤朗恳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后早像,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體僻肖,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年卢鹦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臀脏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劝堪。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖揉稚,靈堂內(nèi)的尸體忽然破棺而出秒啦,到底是詐尸還是另有隱情,我是刑警寧澤搀玖,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布余境,位于F島的核電站,受9級特大地震影響灌诅,放射性物質(zhì)發(fā)生泄漏芳来。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一猜拾、第九天 我趴在偏房一處隱蔽的房頂上張望即舌。 院中可真熱鬧,春花似錦挎袜、人聲如沸顽聂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽紊搪。三九已至,卻和暖如春全景,著一層夾襖步出監(jiān)牢的瞬間耀石,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工爸黄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娶牌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓馆纳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親汹桦。 傳聞我的和親對象是個(gè)殘疾皇子鲁驶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

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

  • 初識Activity: 我們都知道android中有四大組件(Activity活動(dòng),Service服務(wù)舞骆,Conte...
    wangling90閱讀 956評論 2 2
  • 作為Android的四大組件之一钥弯,活動(dòng)最先走進(jìn)我們的視野,其重要性不言而喻督禽,今天就抽出時(shí)間來專門對Android活...
    loser先生閱讀 867評論 0 0
  • Day1: 在代碼中通過R.string.hello_world可以獲得該字符串的引用脆霎; 在XML中通過@stri...
    冰凝雪國閱讀 1,390評論 0 5
  • 轉(zhuǎn)自 1. 什么是Activity? 四大組件之一,一般的,一個(gè)用戶交互界面對應(yīng)一個(gè)activity setCon...
    joe1632閱讀 1,390評論 0 7
  • 文//燭光 秋盡冬來愛暖房睛蛛,讓妻尋衣補(bǔ)綿妝。 出門應(yīng)要須防冷,在屋當(dāng)心不著涼忆肾。 需記住荸频,要儲藏,茫茫冬日不尋常客冈。 ...
    5937閱讀 281評論 0 0