• android:一个Open键引发的问题!!


    1.问题简单介绍

    首先描写叙述一下问题。当我们安装完APP的时候,界面会显示两个button,一个完毕键,一个Open键,点击Open键之后。进入应用。此时。我们点击HOME键。程序将会后台。然后再点击该桌面上应用程序的图标,巨大的BUG出现了:app会又一次启动!而不是将原来的界面onresume!假设你的应用对多次启动不敏感,这道没什么,可是,假设你的应用对多次启动非常敏感。你就必须做处理了。

    2.解决方式

    首先分析问题成因,在android眼下的系统下(最新的为4.4.3),点击Open键和点击图标启动时,Intent的參数传递的不一样。activity的启动方式不同,导致上述问题的产生。可是,因为启动參数由系统设定,我们不好改变。那我们的思路就有两个:

    1.第二次启动的时候。把第一次启动的杀掉

    2.第二次启动的时候。将第一次启动的Activity唤醒,第二次启动关闭。

    一般我们选择另外一种,因此。我们就有了例如以下思路:

    1.在启动第一个Activity的时候,推断启动方式是不是从点击OPEN键启动的.

    2.在须要唤醒的activity中注冊BroadcastReceiver,接收到广播之后。调用自己的onResume方法。

    第一个Activity的onCreate方法中加入的代码例如以下:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
            // 在这里发送广播。唤醒之前启动的Activity
            finish();
            return;
        }
    
        // Regular activity creation code...
    }


    问题得到完美解决。

  • 相关阅读:
    Marshal Code Into Another Thread(STAThread)
    MongoDB分片实战(二):Sharding
    项目中如何添加CorePlot开源框架(重温Xcode链接静态库)
    Xcode4.2中将Three20开源库导入到工程项目中
    Ajax在MVC中的使用
    位枚举的学习
    MVC3+NHibernate项目实战(二) :数据库访问层
    MVC3+NHibernate项目实战(一) :项目设计
    Android VideoView
    00设计原则
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6979823.html
Copyright © 2020-2023  润新知