public class hello extends Activity {
/** Called when the activity is first created. */
private Handler mHandler;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mHandler = new Handler();
SharedPreferences prefs = getPreferences(0);
long lastUpdateTime = prefs.getLong("lastUpdateTime", System.currentTimeMillis());
int curVersion = 0;
try {
curVersion = getPackageManager().getPackageInfo("linhai.com.hello", 0).versionCode;
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.i("DEMO",String.valueOf(curVersion));
if ((lastUpdateTime + (24 * 60 * 60 * 1000)) < System.currentTimeMillis()) {
lastUpdateTime = System.currentTimeMillis();
SharedPreferences.Editor editor = getPreferences(0).edit();
editor.putLong("lastUpdateTime", lastUpdateTime);
editor.commit();
// checkUpdate.start();
}
}
private Thread checkUpdate = new Thread(){
public void run() {
try {
URL updateURL = new URL("http://my.company.com/update");
URLConnection conn = updateURL.openConnection();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while((current = bis.read()) != -1){
baf.append((byte)current);
}
final String s = new String(baf.toByteArray());
int curVersion = getPackageManager().getPackageInfo("your.app.id", 0).versionCode;
int newVersion = Integer.valueOf(s);
if (newVersion > curVersion) {
mHandler.post(showUpdate);
}
} catch (Exception e) {
}
}
};
private Runnable showUpdate = new Runnable(){
public void run(){
new AlertDialog.Builder(hello.this).setIcon(R.drawable.ok).setTitle("Update Available")
.setMessage("An update for is available!\n\nOpen Android Market and see the details?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:your.app.id"));
startActivity(intent);
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}).show();
}
};
}
分享到:
相关推荐
在软件开发领域,特别是与证券市场相关的应用程序设计过程中,“stkdrv”(即“StockDrv”,股票驱动程序)通常指的是一个为特定类型的证券分析软件提供底层支持的驱动程序。这里提到的“分析家通视规范”似乎是一种...
"supermarket_商超购物结算系统_" 是一个针对零售业设计的软件系统,主要用于商超的购物结算和收银管理。这个系统的核心功能是通过控制台界面接收顾客的购物信息,进行快速、准确的结算处理,同时具备收银员管理和...
支付通道使用范围相对比较少,旅行通手机钱包支付计费方式多种,按次/包月都有,资费类型也多样,1-20元都有。联动优势多为一些知名手机软件,正规开发厂商使用。 五、手机杂志VIVA神州行支付 手机杂志VIVA神州行...
3. MMARKET 支付按照包月 / 按次 / 免费的方式在 Mobile Market 移动应用商场进行销售,向用户提供体验式计费方式,目前价格为 0-5 元左右,软件在使用过程中不会再产生任何费用。 这意味着中国移动MMARKET应用软件...
Assistant是一个功能强大、完全免费的个人信息管理软件。小巧实用是它的最大特色。主要功能包括:万年历、便笺、通迅录、计划任务、生日提醒、多邮箱监视等。此外,本程序还提供众多的的自定制选项,包括界面颜色、...
- **CUDA平台**:以英伟达的CUDA通用计算平台为例,它提供了完整的软件栈和高效的硬件性能利用方式,降低了开发者编译的难度,并建立了全球性的开发生态系统。 ### 三、国内GPU厂商的发展趋势 #### 3.1 国产GPU的...
本书内容上覆盖了用Android开发的大... 本书适合具备一定软件开发经验,想快速进入Android开发领域的程序员;具备一些手机开发经验的开发者和Android开发爱好者学习用书;也适合作为相关培训学校的Android培训教材。
在这个例子中,PC0(在finance VLAN)能ping通PC1(也在finance VLAN),PC2(在market VLAN)能ping通PC3和PC4(都在market VLAN),但PC0无法ping通PC2、PC3和PC4,实现了VLAN间的隔离。 5. **VLAN的作用**: - ...
Amibroker是一款强大的金融数据分析和图表软件,特别适合股票、期货和期权交易者进行技术分析。AFL(Amibroker Formula Language)是Amibroker内置的一种编程语言,用于编写自定义的技术指标、策略和研究。...
本书内容上涵盖了用android开发的大部分场景,从android基础介绍、环境搭建、sdk介绍、market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个android平台下的完整综合实例及源代码分析,分别...
12. **大盘资金进场(Market Capital Flow In)**:根据指数的高低点变化计算出的资金流入指标,当该值大于0时,表明资金正在流入市场。 这些指标和公式结合在一起,可以构建出一个用于期货日内短线交易的系统,...
本书内容上覆盖了用Android开发的大部分场景,从Android基础介绍、环境搭建、SDK介绍、Market使用,到应用剖析、组件介绍、实例演 示等方面。从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别...
本书内容上覆盖了用Android开发的大部分场景,从Android基础介绍、环境搭建、SDK介绍、Market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别...
本书内容上涵盖了用Android开发的大部分场景,从Android基础介绍、环境搭建、SDK介绍、Market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别...
《Android开发入门与实战》配套有400多分钟的全程开发视频光盘,指导读者快速、无障碍地学通Android实战开发技术。《Android开发入门与实战》适合具备一定软件开发经验,想快速进入Android开发领域的程序员;具备...
【Mobile Market(MM)】则是中国移动针对苹果App Store的成功而推出的软件商店,以更低的开发门槛和更广泛的开发者合作模式吸引个人开发者。MM不仅提供了开发工具和培训,还建立了开发者社区,降低了技术障碍,促进...