package com.umeng.example.update;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import com.umeng.update.UmengDownloadListener;
import com.umeng.update.UmengUpdateAgent;
import com.umeng.update.UmengUpdateListener;
import com.umeng.update.UpdateResponse;
import com.umeng.example.R;
import com.umeng.ui.BaseSinglePaneActivity;
public class UpdateHome extends BaseSinglePaneActivity {
private static final String LOG_TAG = UpdateHome.class.getName();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//如果想程序启动时自动检查是否需要更新, 把下面两行代码加在Activity 的onCreate()函数里。
// UmengUpdateAgent.setUpdateOnlyWifi(false);
// 如果您同时使用了手动更新和自动检查更新,为了避免更新回调被多次调用,请加上下面这句代码
// UmengUpdateAgent.setOnDownloadListener(null);
UmengUpdateAgent.update(this);
}
@Override
protected Fragment onCreatePane() {
return new AnalyticsHomeDashboardFragment();
}
public static class AnalyticsHomeDashboardFragment extends Fragment {
private Context mContext;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mContext = activity;
}
UmengUpdateListener updateListener = new UmengUpdateListener() {
@Override
public void onUpdateReturned(int updateStatus,
UpdateResponse updateInfo) {
switch (updateStatus) {
case 0: // has update
Log.i("--->", "callback result");
UmengUpdateAgent.showUpdateDialog(mContext, updateInfo);
break;
case 1: // has no update
Toast.makeText(mContext, "没有更新", Toast.LENGTH_SHORT)
.show();
break;
case 2: // none wifi
Toast.makeText(mContext, "没有wifi连接, 只在wifi下更新", Toast.LENGTH_SHORT)
.show();
break;
case 3: // time out
Toast.makeText(mContext, "超时", Toast.LENGTH_SHORT)
.show();
break;
}
}
};
private View.OnClickListener listener = new View.OnClickListener() {
public void onClick(View v) {
// 如果想程序启动时自动检查是否需要更新, 把下面两行代码加在Activity 的onCreate()函数里。
com.umeng.common.Log.LOG = true;
UmengUpdateAgent.setUpdateOnlyWifi(false); // 目前我们默认在Wi-Fi接入情况下才进行自动提醒。如需要在其他网络环境下进行更新自动提醒,则请添加该行代码
UmengUpdateAgent.setUpdateAutoPopup(false);
UmengUpdateAgent.setUpdateListener(updateListener);
UmengUpdateAgent.setOnDownloadListener(new UmengDownloadListener(){
@Override
public void OnDownloadEnd(int result) {
Log.i(LOG_TAG, "download result : " + result);
Toast.makeText(mContext, "download result : " + result , Toast.LENGTH_SHORT)
.show();
}
});
UmengUpdateAgent.update(mContext);
}
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.umeng_example_update_main,
container, false);
Button checkUpdate = (Button) root
.findViewById(R.id.umeng_example_update_btn_check_update);
checkUpdate.setOnClickListener(listener);
return root;
}
}
}