導航:首頁 > 操作系統 > android自動更新代碼

android自動更新代碼

發布時間:2023-01-27 12:49:31

android開發中r.java不能自動更新

不能更新的原因:
1.在xml文件中代碼錯誤或者格式錯誤
2.eclipse 編譯器是老版本
3.布局文件的文件名有大寫字母
4.含有相同文件名、格式的xml文件
解決方法:
1.找到出錯的xml文件中的錯誤代碼格式改正,並執行project —clean 操作
2.eclipse 選擇Project--Build Automaticaly ,將上面的勾去掉

⑵ android應用舊版本自動更新代碼未實現,用戶使用的是老版本,怎樣讓用戶更新到新版本

那就沒辦法了,看你app里有沒有通知用戶消息的一些東西吧,如果有消息推送的話,可以給用戶推送新地址。

⑶ android listView自動更新與實踐處理問題

android的BaseAdapter使用了Adapter模式,然後自動更新使用了Observer模式。但是實際使用過程中經常會遇到不能自動刷新的情況。


我的解決辦法有,但不是很好,沒有能解決自動刷新的問題,只能手動刷新,但是還是希望能夠幫到你。


  1. 當更新數據以後,重新構造adapter,然後必須給list重新設置適配器setAdapter,這就是所謂的手動刷新。。。

  2. 這樣以後list會刷新,但是會跳到第一行去。。。體驗特別差,功能倒是能實現。。


希望能夠幫到你。

⑷ android studio app 自動更新 源碼

⑸ 在app開發中怎麼實現app打開自動更新

Android開發如何實現APP自動更新

先來看看要實現的效果圖:

Intentintent=newIntent(mContext,DownloadService.class);
intent.putExtra("apkUrl","APK下載地址");
startService(intent);

總結

這里我只是粗略演示本地自動更新APP的功能,在實際應用中,我們應該配合服務端來做,比如在用戶啟動APP的時候去比對版本號,如果版本號低於伺服器的版本號,那麼此時服務端應該給客戶端一個透傳推送,這里的推送內容應該為新版本APP的下載地址,此時就可以根據該地址來下載新版APP了,當遇到重大更新,不再對老版本進行兼容的時候,可以強制用戶升級,這里的方案有很多,比如調用系統級對話框,讓用戶沒辦法取消等操作,這里就不做更多描述。以上就是這篇文章的全部內容,希望對有需要的人能有所幫助。

⑹ 如何簡單實現安卓app自動更新功能

app自動更新程序可以參考如下代碼:
第一步 伺服器端:
服務端提供一個借口,或者網址,我這里就用的伺服器是tomcat,這里提供一個網址如下:
//也就是一個json數據介面
public static final String UPDATE_URL = "http://192.168.1.103:8080/update.json";
我們來看下json數據參數:
{
//app名字
appname: "愛新聞1.1",
//伺服器版本號
serverVersion: "2",
//伺服器標志
serverFlag: "1",
//是否強制更新
lastForce: "1",
//apk下載地址,這里我已經下載了官方的apk,放到了伺服器裡面
updateurl: "http://192.168.1.103:8080/36Kr.apk",
//版本的更新的描述
upgradeinfo: "V1.1版本更新,你想不想要試一下哈!!!"
}
好了以上的是伺服器端的信息,在這里不需要多說了,我們來看下客戶端的吧。
第二步 客戶端需要實現:
首先我們要去解析服務端給的json,那麼我們就要來創建一個model類了(代碼過多,這里只有欄位,getter和setter方法自己創建):
//app名字
private String appname;
//伺服器版本
private String serverVersion;
//伺服器標志
private String serverFlag;
//強制升級
private String lastForce;
//app最新版本地址
private String updateurl;
//升級信息
private String upgradeinfo;
在這里使用了一個輔助類,基本和model欄位差不多:
public class UpdateInformation {
public static String appname = MyApplication.getInstance()
.getResources().getString(R.string.app_name);
public static int localVersion = 1;// 本地版本
public static String versionName = ""; // 本地版本名
public static int serverVersion = 1;// 伺服器版本
public static int serverFlag = 0;// 伺服器標志
public static int lastForce = 0;// 之前強制升級版本
public static String updateurl = "";// 升級包獲取地址
public static String upgradeinfo = "";// 升級信息
public static String downloadDir = "wuyinlei";// 下載目錄
}
我們知道,我們在進入app的時候,這個時候如果檢測到伺服器端有了新的版本,就回彈出提示框,提示我們更新。這個我們在MainActivity裡面處理邏輯(onCreate()方法裡面):
OkhttpManager.getAsync(Config.UPDATE_URL, new OkhttpManager.DataCallBack() {
@Override
public void requestFailure(Request request, Exception e) {
}
@Override
public void requestSuccess(String result) {
try {
Log.d("wuyiunlei",result);
JSONObject object = new JSONObject(result);
UpdateInfoModel model = new UpdateInfoModel();
model.setAppname(object.getString("appname"));
model.setLastForce(object.getString("lastForce"));
model.setServerFlag(object.getString("serverFlag"));
model.setServerVersion(object.getString("serverVersion"));
model.setUpdateurl(object.getString("updateurl"));
model.setUpgradeinfo(object.getString("upgradeinfo"));
tmpMap.put(DeliverConsts.KEY_APP_UPDATE, model);
} catch (JSONException e) {
e.printStackTrace();
}
//發送廣播
sendBroadcast(new Intent(UpdateReceiver.UPDATE_ACTION));
}
});
當然了,我們也要注冊和結束廣播:
/**
* 廣播注冊
*/
private void registerBroadcast() {
mUpdateReceiver = new UpdateReceiver(false);
mIntentFilter = new IntentFilter(UpdateReceiver.UPDATE_ACTION);
this.registerReceiver(mUpdateReceiver, mIntentFilter);
}
/**
* 廣播卸載
*/
private void unRegisterBroadcast() {
try {
this.unregisterReceiver(mUpdateReceiver);
} catch (Exception e) {
e.printStackTrace();
}
}
好了,接下來我們看下我們自定義的廣播接收者UpdateReceiver .java:
/**
* 版本更新升級 廣播接受者
*
*/

⑺ 如何寫一個Andorid下自動更新的插件

插件類的編寫

原生Andorid中如果調用,就看上面說的他們自己寫的文檔。如果我們現在要在APP中【設置】中增加自動檢查和顯示當前版本,則需要我們開始學習如何編寫cordova插件了。

這里我們會編寫一個插件,兩個方法,一個方法用來檢測更新,另一個方法用來獲得當前APP的版本號。

閑話不說了,直接來代碼。


public class GCAppPlugin extends CordovaPlugin {

@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if ("version".equals(action)) {
version(callbackContext);
return true;
}
else if ("checkUpdate".equals(action)) {
final Context mContext = this.cordova.getActivity();
UmengUpdateAgent.setUpdateAutoPopup(false);
UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() {
@Override
public void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) {
switch (updateStatus) {
case UpdateStatus.Yes: // has update
UmengUpdateAgent.showUpdateDialog(mContext, updateInfo);
break;
case UpdateStatus.No: // has no update
Toast.makeText(mContext, "現在使用的已是最新版本了", Toast.LENGTH_SHORT).show();
break;
case UpdateStatus.NoneWifi: // none wifi
Toast.makeText(mContext, "沒有wifi連接, 只在wifi下更新", Toast.LENGTH_SHORT).show();
break;
case UpdateStatus.Timeout: // time out
Toast.makeText(mContext, "超時", Toast.LENGTH_SHORT).show();
break;
}
}
});
UmengUpdateAgent.forceUpdate(mContext);
return true;
}
}

private synchronized void version(CallbackContext callbackContext) {
PackageInfo packInfo;
try {
packInfo = this.cordova.getActivity().getPackageManager().getPackageInfo(this.cordova.getActivity().getPackageName(),0);
String version = packInfo.versionName +"("+packInfo.versionCode+")";
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, version));
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

Javascript如何得到插件調用後的返回結果?主要通過類似 callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, version)); 代碼返回PluginResult,失敗和成功都可以觸發Javascript執行對應的自定義函數

插件的配置

插件寫完了,很多人遇到的下一個問題就是怎麼配置才能在Javascript中調用呢?我們今天也不解析源碼,為什麼呢?因為我沒看:)不過,我一定要給大家說清楚如何配置,否則就永遠調用不了插件。

打開res/xml/config.xml文件,添加feature,必須匹配類名,因為源碼中是通過這些去配對的。上面我們寫了更新插件,現在就是要配置一下這個插件類到功能名稱,我在配置文件中加入了下文粗體部分內容


<?xml version='1.0' encoding='utf-8'?>
<widget id="com.glodon.gcapp" version="2.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>掌中廣材</name>
<description> 隨時隨地查找全國最完整最及時的信息價 </description>
<author email="[email protected]" href="http://www.中國信息價.cn"> 周金根 </author>
<content src="html/scj/scj.html" />
<access origin="*" />
<access origin="tel:*" launch-external="yes"/>
<access origin="geo:*" launch-external="yes"/>
<access origin="mailto:*" launch-external="yes"/>
<access origin="sms:*" launch-external="yes"/>
<access origin="market:*" launch-external="yes"/>

<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="30000" />
<preference name="SplashMaintainAspectRatio" value="false" />
<preference name="LoadingDialog" value="正在載入中..." />

<feature name="Device">
<param name="android-package" value="org.apache.cordova.device.Device" />
</feature>
<feature name="NetworkStatus">
<param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" />
</feature>
<feature name="SplashScreen">
<param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
</feature>
<feature name="Camera">
<param name="android-package" value="org.apache.cordova.camera.CameraLauncher" />
</feature>
<feature name="BarcodeScanner">
<param name="android-package" value="com.phonegap.plugins.barcodescanner.BarcodeScanner" />
</feature>
<feature name="Gcapp">
<param name="android-package" value="com.gldjc.guangcaiclient.GCAppPlugin" />
</feature>
</widget>

轉載

⑻ 如何簡單實現安卓app自動更新功能

閱讀全文

與android自動更新代碼相關的資料

熱點內容
轉生魅魔無刪減版:奇幻冒險的世界 瀏覽:459
男人j進入女人j內部免費網站 瀏覽:416
畫怖:用繪畫勾勒恐怖的場景 瀏覽:257
維沃手機安卓80什麼時候推送 瀏覽:140
秘密搜查:犯罪背後的真相 瀏覽:979
微信放在華為哪個文件夾 瀏覽:571
散場後pop音樂:獨特魅力和影響力 瀏覽:28
光頭強:一個受歡迎的動畫形象 瀏覽:322
對稱密鑰加密演算法的特點是 瀏覽:610
龍洋:一個流傳千年的中國姓氏 瀏覽:942
原神文件中原石在哪一個文件夾 瀏覽:926
126郵箱登錄入口:便捷高效的電子郵件管理工具 瀏覽:782
遨遊pdf 瀏覽:611
色wwwwww:色彩對人們的情緒有重要影響 瀏覽:766
私密按摩師電影1:揭秘按摩師背後的故事和挑戰 瀏覽:422