我在第二项活动,卸载其他应用程序正常。
但是当卸载完成后,我想杀死第二个活动并转到上一个(第一个)活动。我不知道该怎么做。
请他
btnUninstall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri packageURI = Uri.parse("package:" + packageInfo.packageName);
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivityForResult(uninstallIntent, 1);
}
});
答案 0 :(得分:1)
在onActivityResult中完成您的活动,如下所示:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode){
case 1:
// finish your activity
finish();
}
}
}
答案 1 :(得分:0)
您可以将意图调用回第一个活动,或者从第二个活动中的onActivityResult回调中完成第二个活动意图,这将在意图执行结束后调用。
答案 2 :(得分:0)
我是如何在调用卸载意图时实现的,我已使用
将包名保存在首选项文件中SharedPreferences prefs;
prefs.edit().putString(DELETE_PACKAGE_NAME, packageName).commit();
我在OnActivityresult所做的事情我刚刚检查了保存包名称的应用程序是否仍然存在,如果它意味着用户点击取消,否则他点击确定。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==DELETE_APP){
String requestedPackageName=prefs.getString(DELETE_PACKAGE_NAME, "");
boolean isPresent=GCMIntentService.isAppPresent(requestedPackageName, this);
if(isPresent){
//user Clicked on Cancel
}else{
//user Clicked on Ok
}
}
}
检查应用程序存在的代码
public static boolean isAppPresent(String packageName,Context context) {
try{
ApplicationInfo info = context.getPackageManager().getApplicationInfo(packageName, 0 );
return true;
} catch( PackageManager.NameNotFoundException e ){
return false;
}
}
感谢。