原创 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("請稍等...");