Activity UI Handler ProgressBar AsyncTask
package io.vov.vitamio.activity; import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Window;
import io.vov.vitamio.Vitamio;
import java.lang.ref.WeakReference; public class InitActivity extends Activity
{
public static final String FROM_ME = "fromVitamioInitActivity";
private ProgressDialog mPD;
private UIHandler uiHandler; protected void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
getWindow().addFlags();
this.uiHandler = new UIHandler(this);
new AsyncTask()
{
protected Boolean doInBackground(Object[] paramArrayOfObject)
{
return Boolean.valueOf(Vitamio.initialize(InitActivity.this, InitActivity.this.getResources().getIdentifier("libarm", "raw", InitActivity.this.getPackageName())));
} protected void onPostExecute(Boolean paramBoolean)
{
if (paramBoolean.booleanValue())
InitActivity.this.uiHandler.sendEmptyMessage();
} protected void onPreExecute()
{
InitActivity.this.mPD = new ProgressDialog(InitActivity.this);
InitActivity.this.mPD.setCancelable(false);
InitActivity.this.mPD.setMessage(InitActivity.this.getString(InitActivity.this.getResources().getIdentifier("vitamio_init_decoders", "string", InitActivity.this.getPackageName())));
InitActivity.this.mPD.show();
}
}
.execute(new Object[]);
} private static class UIHandler extends Handler
{
private WeakReference<Context> mContext; public UIHandler(Context paramContext)
{
this.mContext = new WeakReference(paramContext);
} public void handleMessage(Message paramMessage)
{
InitActivity localInitActivity = (InitActivity)this.mContext.get();
switch (paramMessage.what)
{
default:
return;
case :
}
localInitActivity.mPD.dismiss();
Intent localIntent1 = localInitActivity.getIntent();
Intent localIntent2 = new Intent();
localIntent2.setClassName(localIntent1.getStringExtra("package"), localIntent1.getStringExtra("className"));
localIntent2.setData(localIntent1.getData());
localIntent2.putExtras(localIntent1);
localIntent2.putExtra("fromVitamioInitActivity", true);
localInitActivity.startActivity(localIntent2);
localInitActivity.finish();
}
}
}
Activity UI Handler ProgressBar AsyncTask的更多相关文章
- Android之Handler与AsyncTask的区别
1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可 ...
- android activity改变另一个activity ui
android开发之在activity中控制另一个activity的UI更新 转自:http://www.cnblogs.com/ycxyyzw/p/3875544.html 第一种方法: 遇到一 ...
- Activity内部Handler引起内存泄露的原因分析
有时在Activity中使用Handler时会提示一个内存泄漏的警告,代码通常如下: public class MainActivity extends Activity { private Text ...
- Android自定义控件(四)——让每一个Activity UI都具有弹性
前面我们已经介绍了如何让你的ScrollView,ListView具有弹性, 今天,我们在前面的基础上,做一下适当的修改,让那些既不是ScrollView,也不是ListView的Activity页面 ...
- android static达到Service与Activity于Handler沟通
供static理解力,仅适用于static理解力,不喜勿喷 第一种方式:离Service中获取Activity的static变量,调用该静态变量的getHandler()获取Handler进行发送消息 ...
- Android Service 通过 BroadcastReceiver 更新Activity UI
1:MainActivity.java public class MainActivity extends Activity { private TextView tvInfo = null; pri ...
- MVC实现有关时间的进度条,使用jQuery ui的progressbar
在电商网站中,有时候通过进度条来直观地显示用户是否到期以及用户当前的状态. 设计这样的一个Model. public class User { public int Id { get; set; } ...
- Android开发训练之第五章——Building Apps with Connectivity & the Cloud
Building Apps with Connectivity & the Cloud These classes teach you how to connect your app to t ...
- 官方XmlPullParser和网络解析xml示例及详述
Parsing XML Data This lesson teaches you to Choose a Parser Analyze the Feed Instantiate the Parser ...
随机推荐
- thinkphp 实现无限极分类
thinkphp实现无限极分类,获得所有的子类 今天学习测试了一上午也没有整出来,一开始一直没有办法把所有的子分类拿出来. 最后找到原因: 每次调用的时候没有在最后return的位置我没有选择retu ...
- Keytool生成csr
一. 首先生成密钥库 keytool -genkey -keyalg RSA -keysize 4096 -keystore c:\keystore4096.jks 二.生成csr keytool - ...
- unicode下char*和CString和一些数据之间的转换
首先mfc下字符串只有两种数据:char(一个字节)和wchar_t(两个字节),很多其他数据类型如TCHAR,WCHAR等都是这个两个基本类型的宏定义,BYTE是uchar 1.对话框打印char* ...
- Struts2的标签库(二)——OGNL表达式
Struts2的标签库(二) --OGNL表达式 1.Struts2中的OGNL表达式增加了ValueStack的支持. 注:ValueStack--实际上是一个容器对象,该对象在启动Struts2框 ...
- C#For循环
for循环基本格式 for(初始条件;循环条件;状态改变) { 循环体 } 1.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元).要把100元整好花 ...
- 【leetcode❤python】Sum Of Two Number
#-*- coding: UTF-8 -*- #既然不能使用加法和减法,那么就用位操作.下面以计算5+4的例子说明如何用位操作实现加法:#1. 用二进制表示两个加数,a=5=0101,b=4=0100 ...
- Cheatsheet: 2013 11.12 ~ 11.30
Mobile Xcode 5 Essentials Android vs. iOS Development: Fight! Using MVC to Understand ASP.NET, iOS, ...
- cpu,内存,虚拟内存,硬盘,缓存之间是什么关系??
1.CPU即中央处理器,是英语“Central Processing Unit”的缩写.CPU从内存或缓存中取出指令,放入指令寄存器,并对指令译码分解成一系列的微操作,然后发出各种控制命令,执行微操作 ...
- Using Text_IO To Read Files in Oracle D2k
Suppose you want to read a file from D2k client and want to store its content in Oracle database. Bu ...
- Myeclipse 10.7 android(安卓) 开发环境搭建
1 下载并安装JDK,并且设置环境变量 2 下载安装 installer_r24.3.4-windows.exe (Android SDK Manager) 3 使用 Android SDK Mana ...