<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 93,  comments - 2,  trackbacks - 0
    一. intent.setFlags()方法中的參數值含義:

        1.FLAG_ACTIVITY_CLEAR_TOP例如現在的棧情況為:A B C D 。D此時通過intent跳轉到B,如果這個intent添加FLAG_ACTIVITY_CLEAR_TOP標記,則棧情況變為:A B。如果沒有添加這個標記,則棧情況將會變成:A B C D B。也就是說,如果添加了FLAG_ACTIVITY_CLEAR_TOP標記,并且目標Activity在棧中已經存在,則將會把位于該目標activity之上的activity從棧中彈出銷毀。這跟上面把B的Launch mode設置成singleTask類似。簡而言之,跳轉到的activity若已在棧中存在,則將其上的activity都銷掉。

        2.FLAG_ACTIVITY_NEW_TASK:例如現在棧1的情況是:A B C。C通過intent跳轉到D,并且這個intent添加了FLAG_ACTIVITY_NEW_TASK標記,如果D這個Activity在Manifest.xml中的聲明中添加了Task affinity,系統首先會查找有沒有和D的Task affinity相同的task棧存在,如果有存在,將D壓入那個棧,如果不存在則會新建一個D的affinity的棧將其壓入。如果D的Task affinity默認沒有設置,則會把其壓入棧1,變成:A B C D,這樣就和不加FLAG_ACTIVITY_NEW_TASK標記效果是一樣的了。注意如果試圖從非activity的非正常途徑啟動一個activity(例見下文“intent.setFlags()方法中參數的用例”),比如從一個service中啟動一個activity,則intent比如要添加FLAG_ACTIVITY_NEW_TASK標記(編者按:activity要存在于activity的棧中,而非activity的途徑啟動activity時必然不存在一個activity的棧,所以要新起一個棧裝入啟動的activity)。簡而言之,跳轉到的activity根據情況,可能壓在一個新建的棧中。

        3.FLAG_ACTIVITY_NO_HISTORY:例如現在棧情況為:A B C。C通過intent跳轉到D,這個intent添加FLAG_ACTIVITY_NO_HISTORY標志,則此時界面顯示D的內容,但是它并不會壓入棧中。如果按返回鍵,返回到C,棧的情況還是:A B C。如果此時D中又跳轉到E,棧的情況變為:A B C E,此時按返回鍵會回到C,因為D根本就沒有被壓入棧中。簡而言之,跳轉到的activity不壓在棧中。

        4.FLAG_ACTIVITY_SINGLE_TOP:和Activity的Launch mode的singleTop類似。如果某個intent添加了這個標志,并且這個intent的目標activity就是棧頂的activity,那么將不會新建一個實例壓入棧中。簡而言之,目標activity已在棧頂則跳轉過去,不在棧頂則在棧頂新建activity。

    二.intent.setFlags()方法中參數的用例:

    很多人使用startActivity時候,會碰到如下的異常:
    Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
    都知道,Context中有一個startActivity方法,Activity繼承自Context,重載了startActivity方法。如果使用Activity的startActivity方法,不會有任何限制,而如果使用Context的startActivity方法的話,就需要開啟一個新的task(編者按:參見一.2.的編者按),遇到上面那個異常的,都是因為使用了Context的startActivity方法。解決辦法是:Java代碼中加一個flag,即intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)。這樣就可以在新的task里面啟動這個Activity了。

    posted on 2014-05-28 17:43 Terry Zou 閱讀(151) 評論(0)  編輯  收藏 所屬分類: Android
    <2014年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    Java

    搜索

    •  

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲黄色免费网站| 亚洲中文字幕无码久久综合网| 亚洲av最新在线网址| g0g0人体全免费高清大胆视频| 国产成人无码a区在线观看视频免费| 久久精品国产亚洲AV蜜臀色欲 | 免费无码AV片在线观看软件| 亚洲沟沟美女亚洲沟沟| 中文字幕亚洲免费无线观看日本 | 在线观看免费大黄网站| 亚洲日韩亚洲另类激情文学| 啦啦啦高清视频在线观看免费| 亚洲一区二区三区高清不卡| 成年轻人网站色免费看| 中文字幕在线观看亚洲日韩| 欧美a级成人网站免费| 亚洲人成人网站18禁| 又黄又大又爽免费视频| 国产黄在线播放免费观看| 亚洲午夜国产精品无码老牛影视| A级毛片高清免费视频在线播放| 亚洲国语精品自产拍在线观看| 亚洲w码欧洲s码免费| 亚洲中文字幕久久精品无码VA | 国产亚洲AV夜间福利香蕉149 | av片在线观看永久免费| 亚洲ⅴ国产v天堂a无码二区| 16女性下面扒开无遮挡免费| 亚洲中文字幕精品久久| 亚洲第一黄片大全| 免费人妻无码不卡中文字幕系| 国产日本亚洲一区二区三区| 国产一级大片免费看| 男人j进入女人j内部免费网站| 亚洲综合久久成人69| 精品无码国产污污污免费| 亚洲免费一区二区| 亚洲日产2021三区| 无码专区一va亚洲v专区在线 | ww亚洲ww在线观看国产| 亚洲第一区精品日韩在线播放|