public
class
AppManagerActivity
extends
Activity {
private
TextView tv_shji_byte;
private
TextView tv_sd_byte;
private
ListView lv_listview;
private
LinearLayout ll_loading;
private
List infos;
private
List userapp;
private
List systemapp;
private
Handler handler =
new
Handler() {
public
void
handleMessage(android.os.Message msg) {
lv_listview.setAdapter(
new
MyAppManagerAdapter());
ll_loading.setVisibility(View.INVISIBLE);
};
};
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_app_manager);
tv_shji_byte = (TextView) findViewById(R.id.tv_shji_byte);
tv_sd_byte = (TextView) findViewById(R.id.tv_sd_byte);
lv_listview = (ListView) findViewById(R.id.lv_listview);
ll_loading = (LinearLayout) findViewById(R.id.ll_loading);
userapp =
new
ArrayList();
systemapp =
new
ArrayList();
File datafile = Environment.getDataDirectory();
long
datasize = datafile.getFreeSpace();
File sdfile = Environment.getExternalStorageDirectory();
long
sdsize = sdfile.getFreeSpace();
tv_shji_byte.setText(
"手机可用内存"
+ Formatter.formatFileSize(
this
, datasize));
tv_sd_byte.setText(
"sd卡可用内存"
+ Formatter.formatFileSize(
this
, sdsize));
fillData();
}
/**
* 填充数据
*/
private
void
fillData() {
new
Thread() {
public
void
run() {
infos = AppManagerInfos
.getAppManagerInfos(AppManagerActivity.
this
);
for
(AppInfo info : infos) {
if
(info.isUserapp()) {
userapp.add(info);
}
else
{
systemapp.add(info);
}
}
handler.sendEmptyMessage(
0
);
};
}.start();
}
private
class
MyAppManagerAdapter
extends
BaseAdapter {
@Override
public
int
getCount() {
return
userapp.size() + systemapp.size() +
2
;
}
@Override
public
View getView(
int
position, View convertView, ViewGroup parent) {
View view;
HoldView holder;
if
(convertView !=
null
&& convertView
instanceof
RelativeLayout) {
view = convertView;
holder = (HoldView) view.getTag();
}
else
{
holder =
new
HoldView();
view = View.inflate(AppManagerActivity.
this
,
R.layout.item_app_manager,
null
);
holder.app_name = (TextView) view.findViewById(R.id.app_name);
holder.app_location = (TextView) view
.findViewById(R.id.app_location);
holder.app_icon = (ImageView) view.findViewById(R.id.app_icom);
holder.app_size = (TextView) view.findViewById(R.id.app_size);
view.setTag(holder);
}
AppInfo info;
if
(position ==
0
) {
TextView tv_user =
new
TextView(AppManagerActivity.
this
);
tv_user.setTextSize(
15
);
tv_user.setBackgroundColor(Color.GREEN);
tv_user.setTextColor(Color.BLACK);
tv_user.setText(
"用户程序"
+ userapp.size() +
"个"
);
return
tv_user;
}
else
if
(position == userapp.size() +
1
) {
TextView tv_system =
new
TextView(AppManagerActivity.
this
);
tv_system.setTextSize(
15
);
tv_system.setBackgroundColor(Color.GREEN);
tv_system.setTextColor(Color.BLACK);
tv_system.setText(
"系统程序"
+ systemapp.size() +
"个"
);
return
tv_system;
}
else
if
(position < userapp.size() +
1
) {
info = userapp.get(position -
1
);
}
else
{
info = systemapp.get(position -
2
- userapp.size());
}
holder.app_name.setText(info.getAppname());
holder.app_icon.setImageDrawable(info.getIcon());
holder.app_size.setText(Formatter.formatFileSize(
AppManagerActivity.
this
, info.getSize()) +
"M"
);
if
(info.isInRom()) {
holder.app_location.setText(
"手机内存"
);
}
else
{
holder.app_location.setText(
"sd卡储存"
);
}
return
view;
}
@Override
public
Object getItem(
int
position) {
return
null
;
}
@Override
public
long
getItemId(
int
position) {
return
0
;
}
private
class
HoldView {
TextView app_name;
TextView app_location;
ImageView app_icon;
TextView app_size;
}
}
</appinfo></appinfo></appinfo></appinfo></appinfo>