Android关闭第二个活动并转到第一个活动

时间:2017-03-30 05:47:02

标签: android

我在第二项活动,卸载其他应用程序正常。

但是当卸载完成后,我想杀死第二个活动并转到上一个(第一个)活动。我不知道该怎么做。

请他

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);
        }
    });

3 个答案:

答案 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;
}

 }

感谢。