首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android项目实战-手机卫士20-拿到已经装配了的程序以及程序管理主界面

2013-10-09 
Android项目实战--手机卫士20--拿到已经安装了的程序以及程序管理主界面好了,之前我们就讲了高级工具里面

Android项目实战--手机卫士20--拿到已经安装了的程序以及程序管理主界面

好了,之前我们就讲了高级工具里面的短信备份与还原,那么我们高级工具里面的功能就基本上完成的啦,还有一个叫程序锁的功能而已,但我们今天先不做它先,我们先把我们的程序管理这个功能完成先。

先让大家看一下我们程序管理要做成什么样子先

Android项目实战-手机卫士20-拿到已经装配了的程序以及程序管理主界面         Android项目实战-手机卫士20-拿到已经装配了的程序以及程序管理主界面

我们程序管理这个功能主要就是上面的第二张图片啦,主要就是有卸载、运行和分享而已

我们今天就先把第一张图片里面的内容完成先,

要完成第一张截图里面的内容,我们首先就要知道,程序管理,那么就是要把我们手机里面的所有应用读取出来,然后才能操作的,所以我们就要新建一个model类用来存放这些应用的信息啦,然后还有有一个类用来读取手机里面所有的应用的

com.xiaobin.security.domain.AppInfo



那么,现在我们就来写一下Activity里面的逻辑啦

com.xiaobin.security.ui.AppManagerActivity

package com.xiaobin.security.ui;import java.util.List;import android.annotation.SuppressLint;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;import com.xiaobin.security.R;import com.xiaobin.security.domain.AppInfo;import com.xiaobin.security.engine.AppInfoProvider;public class AppManagerActivity extends Activity{private static final int GET_ALL_APP_FINISH = 1;private ListView lv_app_manager;private LinearLayout ll_app_manager_progress;private AppInfoProvider provider;private AppManagerAdapter adapter;private List<AppInfo> list;@SuppressLint("HandlerLeak")private Handler handler = new Handler(){public void handleMessage(Message msg) {switch(msg.what){case GET_ALL_APP_FINISH : //进度条设置为不可见ll_app_manager_progress.setVisibility(View.GONE);adapter = new AppManagerAdapter();lv_app_manager.setAdapter(adapter);break;default : break;}};};@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.app_manager);lv_app_manager = (ListView) findViewById(R.id.lv_app_manager);ll_app_manager_progress = (LinearLayout) findViewById(R.id.ll_app_manager_progress);ll_app_manager_progress.setVisibility(View.VISIBLE);//因为搜索手机里面的应用程序有可能是非常耗时的,所以我们开启一个新的线程去进行搜索//当搜索完成之后,就把一个成功的消息发送给Handler,然后handler把搜索到的数据设置进入listview里面new Thread(){public void run() {provider = new AppInfoProvider(AppManagerActivity.this);list = provider.getAllApps();Message msg = new Message();msg.what = GET_ALL_APP_FINISH;handler.sendMessage(msg);};}.start();}//======================================================================private class AppManagerAdapter extends BaseAdapter{@Overridepublic int getCount(){return list.size();}@Overridepublic Object getItem(int position){return list.get(position);}@Overridepublic long getItemId(int position){return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent){AppInfo info = list.get(position);if(convertView == null){View view = View.inflate(AppManagerActivity.this, R.layout.app_manager_item, null);AppManagerViews views = new AppManagerViews();views.iv_app_icon = (ImageView) view.findViewById(R.id.iv_app_manager_icon);views.tv_app_name = (TextView) view.findViewById(R.id.tv_app_manager_name);views.iv_app_icon.setImageDrawable(info.getIcon());views.tv_app_name.setText(info.getAppName());view.setTag(views);return view;}else{AppManagerViews views = (AppManagerViews) convertView.getTag();views.iv_app_icon.setImageDrawable(info.getIcon());views.tv_app_name.setText(info.getAppName());return convertView;}}}//用来优化listview的类private class AppManagerViews{ImageView iv_app_icon;TextView tv_app_name;}}

上面的代码也很简单啦,我们之前都写过不少啦,应用可以看明白的了,所以我就不写注释了

到这里为止,我们今天要讲的就完成的啦

现在我们就可以测试一下,看一下我们的程序管理能不能把手机里面的应用读取出来的啦,至于那些卸载这些的逻辑,我们明天再完成它

好啦,今天就到这里,谢谢支持!


今天源码下载




热点排行