1. 程式人生 > >Android應用程序升級後自動進入新版本

Android應用程序升級後自動進入新版本

在新版本中建立一個Receiver接收手機應用的安裝和解除安裝(可以監聽到舊版本的解除安裝)
  1. package
  2. com.justsy.lpi.receiver;  
  3. import
  4. android.content.BroadcastReceiver;  
  5. import
  6. android.content.Context;  
  7. import
  8. android.content.Intent;  
  9. public
  10. class PkInstallReceiver extends BroadcastReceiver {  
  11. @Override
  12. publicvoid onReceive(Context context, Intent intent) {  
  13. if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED" )) {    
  14.             String packageName = intent.getDataString().substring(8);  
  15.             System.  
  16. out.println( "安裝:" +packageName + "包名的程式" );  
  17.         }    
  18. //接收解除安裝廣播 
  19. if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED"
     )) {    
  20.             String packageName = intent.getDataString().substring(8);    
  21.             System.  
  22. out.println( "解除安裝:"  + packageName + "包名的程式" );  
  23.             Intent newIntent =  
  24. new Intent();  
  25.             newIntent.setClassName(packageName,packageName+  
  26. ".AutoStartProTestActivity" );     
  27.             newIntent.setAction(  
  28. "android.intent.action.MAIN");                 
  29.             newIntent.addCategory(  
  30. "android.intent.category.LAUNCHER" );                 
  31.             newIntent.setFlags(Intent.  
  32. FLAG_ACTIVITY_NEW_TASK);        
  33.             context.startActivity(newIntent);  
  34.         }  
  35.      }  
  36. }  


AndroidManifest.xml進行配置
  1. <receiverandroid:name="com.justsy.lpi.receiver.PkInstallReceiver"
  2.             android:label=" @string/app_name">
  3.       <intent-filter>
  4.        <actionandroid:name="android.intent.action.PACKAGE_ADDED"/>
  5.        <actionandroid:name="android.intent.action.PACKAGE_REMOVED"/>
  6.         <dataandroid:scheme="package"/>
  7.       </intent-filter>
  8.   </receiver>
  9. <uses-permissionandroid:name"android.permission.RESTART_PACKAGES"/>
  10. t;uses-permission android:name"android.permission.RECEIVE_BOOT_COMPLETED"/>

相關推薦

Android應用程序升級自動進入版本

在新版本中建立一個Receiver接收手機應用的安裝和解除安裝(可以監聽到舊版本的解除安裝) package com.justsy.lpi.receiver;   import android.content.BroadcastReceiver;   import

android應用程式安裝自動開啟

GetBroadcast.registerReceiver(getApplicationContext());//註冊廣播,用於監聽應用是否安裝完成 //安裝apk Intent intent = new Intent(Intent.ACTION_VIEW); intent

實現adb install替換Android應用的apk應用自動執行

背景 對於在啟動後,僅在後臺執行一個或多個Service,而不立馬啟動一個Activity,且在桌面不顯示應圖示的應用,預設情況下,通過adb install 安裝了apk後,要讓其執行起來,須通過adb shell am start xxx 命令來手動啟動應用,存在一定的不便之處。

關於Android應用程序漏洞的防護措施

android 應用程序 移動應用 開發者 目前,Android應用程序市場的發展速度飛快,不少開發者為了追求開發速度而忽視應用程序的安全。但由於Android系統的開源性及其Java編寫的特殊性,各類Android App經常被爆出漏洞,有的Android開發者只是對App進行

最優雅退出 Android 應用程序的 6 種方式

home鍵 應用 一點 container new 出棧 manage 而且 rec 一、容器式建立一個全局容器,把所有的Activity存儲起來,退出時循環遍歷finish所有Activity import java.util.ArrayList; impor

【苦讀官方文檔】2.Android應用程序基本原理概述

project 做出 系統默認 體驗 告訴 sta 執行過程 顏色 硬件配置 官方文檔原文地址 應用程序原理 Android應用程序是通過Java編程語言來寫。Android軟件開發工具把你的代碼和其它數據、資源文件一起編譯、打包成一個APK文件

Android應用程序中實現推送通知

xamarin android 幾乎每一個應用程序的一個重要特性是支持推送通知的能力。使用推送通知,您可以更新用戶,而不需要應用程序在任何時候運行或輪詢服務器, 避免潛在的電池電量不足。 隨著火力點雲信息的介紹(FCM),谷歌使得在Android應用程序中實現推送通知變

Android應用程序訪問linux驅動第一步:實現並測試Linux驅動

sizeof 屬性文件 rup sla 沒有 lov /dev/ art kmalloc 一直都想親自做一次使用android應用程序訪問Linux內核驅動的嘗試,但總是沒能做到。最近抽出時間,下決心重新嘗試一次。嘗試的開始當然是先寫一個Linux內核驅動了。 我希望

C#使用Xamarin開發Android應用程序 -- 系列文章

android界面 百度 0.11 itl 利用 設備 android安裝 tor href Xamarin開發Android應用程序 利用Xamaria構建Android應用-公交發車信息屏 Xamarin版的C# SVG路徑解析器 C#使用Xamarin開發可移植

單臺xenserver主機正常關機,開機自動進入emergency模式。

lct oot 開機 其中 serve linu oop 很多 恢復 環境:單臺xenserver 7.1因自然因素影響,機房電力不能持續,正常關閉xenserver主機,電力恢復後,開啟xenserver主機不能進入xenserver正常模式,自動進入到emergency

設定虛擬機器開機自動進入字元介面的方法

  /etc/default/grub檔案中的grub_cmdline_linux_default的值決定了開機預設進入的模式,所以將其修改後,更新grub檔案並重啟,即可開機即進入字元介面。 修改grub檔案 輸入命令sudo vi /etc/default/gru

android應用程式安裝點擊開啟帶來的問題

前幾天專案組反饋回來一個這樣的情況就是我在安裝應用之後點選了開啟 然後按home鍵 這個時候應用程式進入後臺 我點選手機桌面的時候圖片啟動應用程式 程式重新再次啟動 而不是後臺的程式返回到前臺;  /

Android應用安裝完成開啟應用出現初始化兩次解決方案

 啟動介面加上 if (!isTaskRoot()) { finish(); return; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(

淺析android應用增量升級

擴充套件閱讀       使用bsdiff 進行差分升級,還並不是最優的方式,google在它的Chromium專案中,對這個差分演算法進行了優化,優化後的版本叫做小胡瓜Courgette,據說效能優化了很多不是一個數量級了,官方的一個例子:Full update       10,385,920 bsdi

Android應用增量升級

何為增量升級,簡單說下,當應用版本要更新時通常的做法是重新下載新的版本去覆蓋舊版本,但這樣有個比較明顯缺點,太浪費流量了,尤其是在GPRS模式下。我們能不能只更新新版本增加的內容呢,bsdiff/bzlib2可以幫助我們實現這點。下面介紹下具體的做法 第一、生成舊版

android應用apk升級更新

一、前言 這段時間獨立完成了一個專案,想把一些常用知識點記錄下來,如有不足之處還請指點。望共勉之。好啦,廢話不多說直接進入正題,直接上程式碼,效果圖我就不上了,程式碼是小編親測有效,大家放心好啦。 1.首先進行本地版本與伺服器版本對比,這都是老套路啦(^_^) HttpHelper.ob

Xshell 5:要繼續使用此程序,您必須應用最新的更新或使用版本

繼續 dll 安裝 打賞 ret 新版本 .dll www. png 1.通過修改 Hosts 文件 文件位置:X:\Windows\System32\drivers\etc 在文件最底下添加: 127.0.0.1 transact.netsarang.com 127.0

Android應用實現安裝自啟動

和網上大多數方法一樣,使用廣播手段: ACTION_PACKAGE_ADDED 一個新應用包已經安裝在裝置上,資料包括包名(最新安裝的包程式不能接收到這個廣播)ACTION_PACKAGE_REPLACED 一個新版本的應用安裝到裝置,替換之前已經存在的版本ACTION

如何讓我們的Android應用程序保活?

一、執行緒 程序 應用 預設下,同一個應用的所有元件都執行在同一個程序中。當然也可以在manifest清單檔案中設定元件執行的程序。 元件元素 activity、service、receiver、provider,都有一個process屬性可以指定元

Android對話方塊顯示自動消失

package com.example.dialog_1; import android.app.Activity; import android.app.AlertDialog; import a