原创 The APK file does not exist on disk.Error while Installing APK

解決方案:點擊右邊的Gradle Projects,點擊刷新按鈕。如圖:

原创 Handler、Message、Loop消息隊列模型,各部分的作用

Android系統的消息隊列和消息循環都是針對具體線程的,一個線程可以存在(當然也可以不存在)一個消息隊列(Message Queue)和一個消息循環(Looper)。Android中除了UI線程(主線程),創建的工作線程默認是沒有消息循

原创 設計模式——觀察者設計模式

1 概念       觀察者設計模式是對象的行爲模式,又叫做發佈-訂閱模式、模型-視圖模式,源-監聽器模式或從屬者模式      觀察者模式定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象,這個主題對象在狀態上發生變

原创 設置自動跳轉頁面

Timer 1 2 3 4 5 6 7 8 9 10 11 Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public

原创 利用synchronized關鍵字解決線程安全問題

利用synchronized關鍵字解決線程安全問題        1.線程安全問題            當多條語句在操作同一個線程共享數據時,一個線程對多條語句操作的時候     還沒有執行完,另一個線程就參與進來執行,導致共享

原创 Android APK打包流程

概述 今天主要講一下Android程序的生成步驟,即Android打包成APK的流程。 通常情況下,在開發過程中打包APK是一件很簡單的事,主要可以通過兩種方式:一種是用Eclipse或者Android Studio集成開發環境直接

原创 Android中圖片的三級緩存

什麼是三級緩存     三級緩存就是網絡、磁盤(本地)、內存緩存 網絡緩存, 不優先加載, 速度慢,浪費流量本地緩存, 次優先加載, 速度快內存緩存, 優先加載, 速度最快 爲什麼要使用三級緩存 如今的 Android App 經常

原创 MD5加密

public String Md5(String plainText) { String result = ""; try { MessageDigest md = MessageDigest.getInstance("MD

原创 帶下劃線的EditText

public class LinedEditText extends EditText { private Paint linePaint; private float margin; private int paperColor;

原创 數組初始化賦值

1、創建數組後,通過循環對數組賦值。 例如代碼: int [] nums = new int [100]; for(int i=0;i<10;i++){ nums[i] = i; } 2、例如代碼: int [] nums = {0,1

原创 生產者和消費者

java 1.5以後用 1. lock.lock()       同步代碼      lock.unlock() 替代了synchronized同步代碼塊 2.condition.await()替代了wait(); 3.conditio

原创 檢測系統中是否安裝某款軟件

//檢測系統中是否已經安裝了adobe flash player插件,插件的packageName是com.adobe.flashplayer: private boolean check() { PackageManager pm

原创 檢查網絡狀態

public boolean checkNetworkInfo() { ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNE

原创 Android Studio設置默認的簽名文件

新浪微博SSO登錄,微信分享這些都需要簽名打包,才能看到效果,設置默認簽名文件爲自己的簽名jks,這樣就不需要打包了。 在app目錄下添加你的.jks,然後app的build.gradle文件中的增加以下內容: 第一種: 1 2 3

原创 ProgressDialog

1 2 3 4 5 final ProgressDialog progress = new ProgressDialog(LoginActivity.this); progress.setMessage("請稍等...");