如何在android中的latters边界内的另一个应用程序中打开一个应用程序?

时间:2015-11-16 11:57:39

标签: java android

如何在android中的latters边界内的另一个应用程序中打开一个应用程序?即。,类似于iframe在HTML中的作用。

3 个答案:

答案 0 :(得分:1)

你基本上不能。这违反了Android的规则。您可以做的最多是打开一个网页作为应用程序的一部分。这是使用webView完成的。您可以通过在Webview的xml文件中设置webview的边界来控制屏幕的边界。

public class WebViewFragment extends Fragment {

    public static final String ARG_SECTION_NUMBER = "section_number";

    public WebViewFragment() {

    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View mainView = inflater.inflate(R.layout.fragment_facebook,
                container, false);
        WebView webView = (WebView) mainView.findViewById(R.id.webView1);

        webView.setWebViewClient(new MyWebViewClient());
        webView.getSettings().setSupportZoom(false);
        webView.getSettings()
                .setJavaScriptCanOpenWindowsAutomatically(true);
        webView.getSettings().setAllowFileAccess(true);
        webView.getSettings().setDomStorageEnabled(true);
        webView.loadUrl(""); //URL needs to be entered in this line

        return mainView;
    }
}

希望这会有所帮助:)

答案 1 :(得分:1)

由于安全原因,这是不可能的。以前版本的Android允许使用系统级权限(大多数开发人员永远不会使用的权限),但它很少使用,据我所知,它不再在SDK中。

一些制造商实施其他功能,如三星的迷你应用程序(如果我记得正确的名称),可以在其他应用程序上方的浮动窗口中打开。您还可以使用服务(如Facebook Messenger)来绘制您自己的应用程序。但是没有办法强迫第三方应用程序执行任何这些操作。

但是,每次从应用程序打开应用程序时,新应用程序的进程都会将调用程序的进程指定为父进程。这允许您在某种程度上检查是否已从您的应用中打开此其他应用。

此外,您的应用在开设新应用时不会死亡,但只会在#34;以下#34;。如果您需要来自其他应用的某种数据,您可以启动它forResult。这样其他应用就会知道"你期望得到一个定义的结果,所以它会处理一些数据并将它传回你的应用程序(在另一个数据完成准备结果后会重新出现)。

答案 2 :(得分:0)

有可能使用android属性 在AndroidManifest.xml(在activity元素中)声明您的活动时android:launchMode="singleTask

如果您这样做,如果您最小化您的应用并再次启动它(从背景或应用列表中的应用图标),它仍会显示新的应用。

我不确定结果是否符合您的预期效果。