操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    在 res 新建 xml 文件夾,創建一個 .xml 的文件。

    如果 res 下沒有 xml 文件,則先創建。

    .xml 內容如下:

    屬性的注釋在上面寫的很清楚了,這里需要說兩點。

    1.關于寬度和高度的數值定義是很有講究的,在桌面其實是按照“格子”排列的。

    看 給的圖。上面我們代碼定義 110dp 也就是說,它占了2*2的空間。

    2.第二點很重要。有個 屬性,更新的時間間隔(ms)。

    官方給提供了小部件的自動更新時間,但是卻給了限制,你更新的時間必須大于30分鐘,如果小于30分鐘,那默認就是30分鐘。

    可以我們就是要5分鐘更新啊,怎么辦呢?

    所以就不能使用這個默認更新,我們要自己來通過發送廣播控制更新時間,也就是一開始總步驟里面第4步,加一個 來控制 的更新時間,這個在最后一步添加。

    2.創建布局文件

    在 創建 .xml 文件。

    這里要注意的就是 桌面部件并不支持 所有的控件。

    檔案里是放原件還是復印件_程序計數器里放的是什么_檸檬放蜂蜜里保質期是多久

    支持的控件如下:

    App Widget支持的布局:
     ? ? ?   FrameLayout
     ? ? ?   LinearLayout
     ? ? ?   RelativeLayout
     ? ? ?   GridLayout
    App Widget支持的控件:
     ? ? ?   AnalogClock
     ? ? ?   Button
     ? ? ?   Chronometer
     ? ? ?   ImageButton
     ? ? ?   ImageView
     ? ? ?   ProgressBar
     ? ? ?   TextView
     ? ? ?   ViewFlipper
    

    程序計數器里放的是什么_檸檬放蜂蜜里保質期是多久_檔案里是放原件還是復印件

    ? ? ?   ListView ? ? ?   GridView ? ? ?   StackView ? ? ?   AdapterViewFlipper

    3. 管理 狀態

    這里代碼看起來可能有點多,先聽我講幾個邏輯,再來看代碼。

    1. 的各種東西都有自己的生命周期, 也不例外,它有幾個方法來管理自己的生命周期。

    2. 同一個小部件是可以添加多次的,所以更新控件的時候,要把所有的都更新。

    3. () 用來接收廣播,它并不在生命周期里。但是,其實 () 是掌控生命周期的。

    如下是 () 父類的源碼,右邊是每個廣播對應的方法。

    上面我畫的生命周期的圖,也比較清楚。

    然后我們再來看代碼。

    新建一個 類,繼承 。

    程序計數器里放的是什么_檸檬放蜂蜜里保質期是多久_檔案里是放原件還是復印件

    主要邏輯在 () 里,其他的都是生命周期切換時,所處理的事情。

    我們在下面分析 ()。

    ( , )

    它傳了兩個值回來, 是跳轉、發廣播用的。

    我們用來判斷的是 ,這里用到了 的兩種方式。

    作為信息傳遞者。

    它要把信息傳給誰,可以有三個匹配依據:一個是,一個是,一個是data。

    String ACTION_UPDATE_ALL = "com.lyl.widget.UPDATE_ALL";

    這個最后會在 .xml 里面注冊時寫進去。

    當每隔 N 秒/分鐘,就發送一次這個廣播,更新所有UI。

    intent.hasCategory(Intent.CATEGORY_ALTERNATIVE)

    是廣播事件里攜帶的 里設置的,用來匹配。

    點擊“恢復”按鈕,計數器清零。

    然后是 () 這個方法程序計數器里放的是什么,更新 UI。

    檸檬放蜂蜜里保質期是多久_程序計數器里放的是什么_檔案里是放原件還是復印件

    更新 UI 用到了一個新東西——。

    怎么來理解 呢?

    因為,桌面部件并不像平常布局直接展示,它需要通過某種服務去更新UI。但是我們的App怎么能去控制桌面上的布局呢?

    所以就需要有一個中間人,類似傳遞者。

    我告訴傳遞者,你讓他把我的 R.id. ,更新成 “hello world”。

    你讓他把我的 R.id. 按鈕點擊之后去響應 這件事。

    就是承擔著一個這樣的角色。

    然后再去理解代碼,是不是稍微好一點了?

    4. 最后就是 控制 的更新時間

    說好的 當每隔 N 秒/分鐘,就發送一次這個廣播。

    那到底在哪發呢?也就是我們剛開始說的,用 來控制時間。

    新建一個 類,繼承 。代碼如下:

    在 開啟一個計時線程,每1秒發送一個廣播,廣播就是我們自己定義的類型。

    5. 在 .xml 注冊 桌面部件 和 服務

    檔案里是放原件還是復印件_檸檬放蜂蜜里保質期是多久_程序計數器里放的是什么

    然后就只剩最后一步了,注冊相關信息

    相應的注釋都在上面,如果我們的App進程被殺掉,服務也被關掉,那就沒辦法更新UI了。

    也可以再創建一個 監聽系統的各種動態,來喚醒我們的通知服務,這就屬于進程保活了。

    至此,以上代碼寫完,如果不出問題,運行之后直接去桌面看小工具,我們的App就在里面了,可以添加到桌面。

    對于需要定時更新的桌面部件,保證自己的服務在后臺運行也是一件比較重要的事情。

    這個我們還是可以好好做一下,畢竟用戶都已經愿意把我們的程序放到桌面上,所以只要友好的引導用戶給你一定的權限,存活概率還是很大。

    再不濟,讓用戶主動點開App,也不失為一種辦法。

    好的創意才能造就好的App,代碼只是實現。

    最后放上項目地址:

    ZZS

    優秀人才不缺工作機會,只缺適合自己的好機會。但是他們往往沒有精力從海量機會中找到最適合的那個。

    會對平臺上的人才和企業進行嚴格篩選,讓「最好的人才」和「最好的公司」相遇。

    掃描下方二維碼程序計數器里放的是什么,注冊,談談你對下一份工作的期待。一周內,收到 5-10 個滿足你要求的好機會!

    如果你有想學習的文章直接留言,我會整理征稿。如果你有好的文章想和大家分享歡迎投稿,直接向我投遞文章鏈接即可。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有