/**
* 卸载 app
*/
public
void
unistallApp(){
Intent intent =
new
Intent();
intent.setAction(Intent.
ACTION_DELETE
);
intent.addCategory(Intent.
CATEGORY_DEFAULT
);
intent.setData(Uri. parse(
"package:"
+
clickAppInfo
.getPackName()));
startActivityForResult(intent, 0);
}
//卸载之后告诉程序管理器界面重新填充数据,否则卸载之后的app还会出现在lv中
// 方法1: onactivityResult
@Override
protected
void
onActivityResult(
int
requestCode,
int
resultCode, Intent data) {
fillDateToLIst();
super
.onActivityResult(requestCode, resultCode, data);
}
// 方法2: 发送一条自定义广播
<
receiver
android:name
=
"xxxx"
>
<
intent-filter
>
<
action
android:name
=
"android.intent.action.PACKAGE_REMOVED"
/>
</
intent-filter
>
</
receiver
>
//---------------------------------------------------------------------------------------
/**
* 分享应用: 激活系统短信应用
*/
public
void
shareApp(){
/* <action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />*/
Intent intent=
new
Intent();
intent.setAction(
"android.intent.action.SEND"
);
intent.addCategory(
"android.intent.category.DEFAULT"
);
intent.setType(
"image/*"
);
//分享内容
intent.putExtra(intent.
EXTRA_TEXT
,
"推荐一款软件:"
+
clickAppInfo
.getAppName()+
",下载网址是:"
+
"http://play.google.com/store/apps/details?id="
+
clickAppInfo
.getPackName());
startActivity(intent);
}
//---------------------------------------------------------------------------------------
/**
* 启动 App的方法: 意图开启应用的第一个activity
*/
public
void
startApp(){
// 查找当前应用程序里面的第一个activity. 激活他.
PackageManager pm = getPackageManager();
try
{
//懒加载
PackageInfo packInfo = pm.getPackageInfo(
clickAppInfo
.getPackName(), PackageManager.
GET_ACTIVITIES
);
ActivityInfo[] infos = packInfo.
activities
;
if
(infos !=
null
&& infos.
length
> 0) {
ActivityInfo activityInfo = infos[0];
String className = activityInfo.
name
;
Intent intent =
new
Intent();
intent.setClassName(
clickAppInfo
.getPackName(), className);
startActivity(intent);
}
else
{
Toast. makeText(
this
,
"没有找到入口activity"
, 0).show();
}
}
catch
(NameNotFoundException e) {
e.printStackTrace();
Toast. makeText(
this
,
"无法启动该应用"
, 0).show();
}
}
--------------------------------------------------------
问题:自己开启自己的时候出现重复加载相同的activity
指定软件管理的activity的启动模式为:
singleTask
<!--软件管理的activity -->
<
activity
android:name
=
"com.itheima.mobilesafe.AppManagerActivity"
android:theme
=
"@android:style/Theme.Light.NoTitleBar"
android:launchMode
=
"singleTask"
></
activity
>