欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Android中使用Notification實現進度通知欄(示例三)

 更新時間:2016年12月09日 10:36:41   作者:潘侯爺  
這篇文章主要介紹了詳解Android中使用Notification實現進度通知欄(示例三),具有一定的參考價值,有興趣的可以了解一下。

我們在使用APP的過程中,軟件會偶爾提示我們進行版本更新,我們點擊確認更新后,會在通知欄顯示下載更新進度(已知長度的進度條)以及安裝情況(不確定進度條),這就是我們今天要實現的功能。實現效果如下:

在代碼實現功能前,我們先解釋進度條的兩種狀態(tài):

(1)顯示一個已知長度的進度條指示器(Displaying a fixed-duration progress indicator)

為了能夠顯示一個確定的進度條,通過調用setProgress() setProgress(max, progress, false)給你的通知加上進度條。然后發(fā)布通知。然后,隨著操作的進度,增加進度值,然后更新通知。在操作結束的時候,進度值應該等于最大值。通常的方式是調用setProgress()來設置最大值為100,然后去增加進度完成的百分比。你可以在操作完成的時候顯示進度條,也可以移除掉它。在這樣的情況下,記住要去更新通知的文本,顯示操作已經完成了。調用setProgress(0, 0, false)來移除進度條。

public Builder setProgress(int max, int progress, boolean indeterminate)

其中max為進度最大值,progress為當前進度,indeterminate為不確定的(設置為true,則為不確定的,反之則確定)

(2)顯示一個持續(xù)的活動指示器(Displayinga continue activity indicator)

為了能使用不確定的活動指示器,使用setProgress(0, 0, true)方法來給你的通知添加(前兩個參數被忽略了),然后發(fā)布通知。除非去指定它的動畫效果,要不然,這個指示器的樣式都是一樣的。

在操作開始的時候發(fā)布通知,這個動畫將一直執(zhí)行,直到你修改通知,當操作完成的時候,調用setProgress(0, 0,false)來更新通知去移除活動指示器。我們總是這樣做,除非你想要讓操作完成的時候,動畫效果還在運行。

也請記住當操作完成的時候更新下通知里的文本。

知道了這兩點,我們開始實現代碼:

layout中點擊觸發(fā)按鈕的布置:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/activity_content"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="com.example.administrator.day12.ContentActivity">
  <TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:textSize="30sp"
    android:text="顯示進度實圖" />
</LinearLayout>

java代碼實現MainActivity.java:

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;
import android.widget.RemoteViews;
public class MainActivity extends AppCompatActivity {
  //定義notification實用的ID
  private static final int NO_3 =0x3;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
  public void show3(View v){
    final NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    builder.setSmallIcon(R.mipmap.huangyueying);
    builder.setContentTitle("下載");
    builder.setContentText("正在下載");
    final NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(NO_3, builder.build());
    builder.setProgress(100,0,false);
    //下載以及安裝線程模擬
    new Thread(new Runnable() {
      @Override
      public void run() {
        for(int i=0;i<100;i++){
          builder.setProgress(100,i,false);
          manager.notify(NO_3,builder.build());
          //下載進度提示
          builder.setContentText("下載"+i+"%");
          try {
            Thread.sleep(50);//演示休眠50毫秒
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
        }
        //下載完成后更改標題以及提示信息
        builder.setContentTitle("開始安裝");
        builder.setContentText("安裝中...");
        //設置進度為不確定,用于模擬安裝
        builder.setProgress(0,0,true);
        manager.notify(NO_3,builder.build());
//        manager.cancel(NO_3);//設置關閉通知欄
      }
    }).start();
  }
}

我們這里只是簡單的模擬效果實現,為了讓大家了解并熟練運用屬性方法,為后期的實體項目做技術儲備。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android編程實現的簡易路徑導航條功能示例

    Android編程實現的簡易路徑導航條功能示例

    這篇文章主要介紹了Android編程實現的簡易路徑導航條功能,結合實例形式分析了Android結合視圖、布局及路徑操作實現導航條功能的相關技巧,需要的朋友可以參考下
    2017-01-01
  • Android Cocos Creator游戲開發(fā)平臺打包優(yōu)化實現方案

    Android Cocos Creator游戲開發(fā)平臺打包優(yōu)化實現方案

    Cocos Creator是一款輕量、高效、免費開源的跨平臺游戲引擎,同時也是實時3D內容創(chuàng)作平臺,不僅支持2D、3D的游戲開發(fā),同時在HMI、IoT、XR、虛擬人偶等領域,均可提供一套完善的行業(yè)解決方案
    2022-11-11
  • Android自定義控件仿QQ編輯和選取圓形頭像

    Android自定義控件仿QQ編輯和選取圓形頭像

    這篇文章主要為大家詳細介紹了Android自定義控件編輯和選取圓形頭像,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 淺談Android Classloader動態(tài)加載分析

    淺談Android Classloader動態(tài)加載分析

    這篇文章主要介紹了淺談Android Classloader動態(tài)加載分析,詳細的介紹了ClassLoader概念、分類,具有一定的參考價值,有興趣的可以了解一下
    2018-03-03
  • Android 中使用 dlib+opencv 實現動態(tài)人臉檢測功能

    Android 中使用 dlib+opencv 實現動態(tài)人臉檢測功能

    完成 Android 相機預覽功能以后,在此基礎上我使用 dlib 與 opencv 庫做了一個關于人臉檢測的 demo。接下來通過本文給大家介紹Android 中使用 dlib+opencv 實現動態(tài)人臉檢測功能 ,需要的朋友可以參考下
    2018-11-11
  • Android中方法數超限問題與啟動優(yōu)化詳解

    Android中方法數超限問題與啟動優(yōu)化詳解

    這篇文章主要給大家介紹了Android中方法數超限問題與啟動優(yōu)化的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • 開源電商app常用標簽

    開源電商app常用標簽"hot"之第三方開源LabelView

    這篇文章主要介紹了開源電商app常用標簽"hot"之第三方開源LabelView,對開源電商app相關資料感興趣的朋友一起學習吧
    2015-12-12
  • Android 仿蘋果IOS6開關按鈕

    Android 仿蘋果IOS6開關按鈕

    這篇文章主要介紹了Android 仿蘋果IOS6開關按鈕的實現代碼,代碼簡單易懂非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • Android實現手勢控制ImageView圖片大小

    Android實現手勢控制ImageView圖片大小

    這篇文章主要介紹了Android實現手勢控制ImageView圖片大小的相關資料,需要的朋友可以參考下
    2016-02-02
  • android 分辨率適配的方法

    android 分辨率適配的方法

    先和大家分享下,這個方法不能說萬能的,但是最起碼它解決了分辨率跟密集度的關系,但是也引來一個問題,就是布局會因為圖片資源小而失真,本文將詳細介紹android 分辨率適配的方法,需要的朋友可以參考下
    2012-11-11

最新評論