android中同一应用的多个实例

比什瓦吉特·比斯瓦斯(Bishwajeet Biswas)

从图库应用程序内部共享图像时如何使用已经运行的应用程序?它总是在创建已经运行的应用程序的单独实例。我在whatsapp应用程序中观察到相同的问题。

斯瑞·雷迪·梅农(Sree Reddy Menon)

是的,另一个用例是当您单击通知时。如果应用程序已经在后台,它将启动一个新实例。

使用 android:launchMode

<activity android:launchMode = ["standard" | "singleTop" | "singleTask" | "singleInstance"] ../>

所以"singleTop"从docs使用

如果活动的实例已经存在于当前任务的顶部,则系统通过调用其onNewIntent()方法将意图路由到该实例,而不是创建活动的新实例。该活动可以被实例化多次,每个实例可以属于不同的任务,并且一个任务可以具有多个实例(但前提是位于后堆栈顶部的活动不是该活动的现有实例)。

请阅读下面的博客文章

http://inthecheesefactory.com/blog/understand-android-activity-launchmode/en

https://www.mobomo.com/2011/06/android-understanding-activity-launchmode/

编辑:在OnResume之前,它将调用OnActivityResult。选择的数据

Intent intent = new Intent();

    intent.setType("image/jpeg");
            intent.setAction(Intent.ACTION_GET_CONTENT);

            startActivityForResult(Intent.createChooser(intent,
                    "Select Image From Gallery"),
                    10000);


    @Override
        protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
Uri originalUri = null;
        if (resultCode == Activity.RESULT_OK) {
    if (requestCode == 10000) {

                    if (data.getData() != null) {
                        originalUri = data.getData();
                        //originaluri is your selected image path.


                    }}}

并在我们的应用中获取“意图过滤器操作”。

void onCreate (Bundle savedInstanceState) {
    ...
    // Get intent, action and MIME type
    Intent intent = getIntent();
    String action = intent.getAction();
    String type = intent.getType();

    if (Intent.ACTION_SEND.equals(action) && type != null) {
        if ("text/plain".equals(type)) {
            handleSendText(intent); // Handle text being sent
        } else if (type.startsWith("image/")) {
            handleSendImage(intent); // Handle single image being sent
        }
    } 

http://developer.android.com/training/sharing/receive.html http://developer.android.com/training/basics/intents/filters.html

或者,如果您使用的是launchmode- singleTop。只需重写onNewIntent即可

 @Override
    protected void onNewIntent(Intent intent) {


        super.onNewIntent(intent);

    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 node.js 中禁止同一应用程序的多个实例?

使用.NET多线程运行同一应用程序的多个实例

具有相同组ID Kafka的同一应用程序的多个实例

同一应用程序服务器的多个实例导致2个问题

使用dbus控制同一应用程序的多个实例?

通过同一应用程序的多个kafka流实例读取规则集主题/分区

具有同一应用程序多个实例的 Amazon SNS 主题

Android-Lollipop屏幕固定功能可在同一应用程序中跨多个活动使用吗?

Android:初始化时,同一应用程序的两个Aplication类实例

同一应用程序的不同实例的集成测试

在同一应用程序中启动多个scotty服务器的最优雅方法是?

如何在git中同时使用同一应用程序的多个版本?

库中同一应用程序的多个共享选项

同一应用程序上的多个TIdCmdTCPServers

在同一应用程序的两个或多个实例之间切换的快捷键?

为什么在收集Linphone代码后会安装同一应用程序的两个实例(android)

同一应用中的AdMob和Google Analytics(分析)

如何从在同一应用程序服务器上运行的应用程序中查找HornetQ实例?(AS7)(无法实例化InitialContextFactory)

多个Django数据库-将模型映射到同一应用程序中的数据库

是否可以安装同一应用程序的两个实例?

Spring Boot Admin-注册同一应用程序的两个实例

如何从同一应用程序向多个JMS(活动MQ)代理发送消息?

如何在Glassfish服务器上部署同一应用程序的多个副本?

Liquibase可以处理由同一应用程序管理的多个模式吗?

如何让同一应用程序的多个版本使用相同版本的程序集?C#

是否可以在TestFlight上具有同一应用程序的多个版本?

远程更新同一应用程序的多个网站和数据库

Firebase:将同一应用程序部署到多个Firebase项目

同一应用程序下具有多个环境的Terraform和Elastic Beanstalk