在Android中启动intent后如何返回调用Activity?

时间:2017-03-11 00:57:12

标签: android android-intent

启动默认计算器并返回导航后,用户将返回不同的活动而不是调用活动。当用户单击计算器按钮时,将打开设备默认计算器。在调用onBackPressed时,用户将返回到应用程序中不应该访问的其他活动。如何确保用户返回到调用活动?这是我的代码以及我尝试过的内容:

    public static void openByName(Context context, String name){
        ArrayList<HashMap<String,Object>> items =new ArrayList<HashMap<String,Object>>();

        final PackageManager pm = context.getPackageManager();
        List<PackageInfo> packs = pm.getInstalledPackages(0);
        for (PackageInfo pi : packs) {
            if( pi.packageName.toLowerCase().contains(name)){
                HashMap<String, Object> map = new HashMap<String, Object>();
                map.put("appName", pi.applicationInfo.loadLabel(pm));
                map.put("packageName", pi.packageName);
                items.add(map);
            }
        }

        if(items.size()>=1){
            String packageName = (String) items.get(0).get("packageName");
            Log.d(TAG, "PackageName: " + packageName);
            Intent i = pm.getLaunchIntentForPackage(packageName);
            if (i != null)
                context.startActivity(i);
        }
        else{
            // Application not found
            Toaster.make(context, name + " not found");
        }
    }

尝试不同的方法之后,我不得不使用这种方式,因为它不会在某些设备上运行。

0 个答案:

没有答案