android 转屏触发了两次onConfigurationChanged()方法,很诡异,不知道有人遇到过吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 转屏触发了两次onConfigurationChanged()方法,很诡异,不知道有人遇到过吗?相关的知识,希望对你有一定的参考价值。

求大侠!分析过这块源码的高手也可以说说自己的见解,大家讨论一下。

参考技术A 我曾经遇到过onCreate两次过,后来重启了下eclipse就正常了。。追问

不是,我这个重启肯定没用,而且无论横屏转竖屏还是竖屏转横屏都会调用2次,不知道什么地方触发了这个方法。

参考技术B 楼主解决了吗?我也遇到这问题了,而且在其它demo上测试了很多都是只执行一次。就是在本app的其它activity测试都只执行一次,只有主页的activity每次横竖屏都执行两次,还有主页里包含着的Fragment也是执行两次。

JavaScript 事件点击触发了两次

【中文标题】JavaScript 事件点击触发了两次【英文标题】:JavaScript event click triggered twice 【发布时间】:2011-04-25 06:52:55 【问题描述】:

我正在测试创建 LI 元素,每个元素内都有一个简单的超链接。 所有的 LI 元素都是使用 jQuery.append 动态生成的

然而—— 1. 如果元素是作为 CALLBACK 函数 (ASYNCHRONOUS) 的一部分创建的——在调用 jQuery AJAX 之后——一切正常 2. 如果元素是同步创建的——一旦点击就会触发两个点击事件。

下面是三个相关的JavaScript函数?注意有两个硬编码的超链接 1. 标记为 SYNC 2. 标记为 A-SYNC。

有什么想法吗?

    MCRM.Handler.accounts_index = function()
    console.log("MCRM.Handler.accounts_index");
        MCRM.Account.all(function(r)
            MCRM.Handler.accounts_list(r);
            preventDefaultLink();
        );
    ;



    MCRM.Handler.accounts_list = function(r)
          console.log("MCRM.Handler.accounts_list");
          $('#listAccount').append('<li class="arrow"><a href="app/views/accounts/show.html">A-SYNC</a></li>');
          for(var  i = 0; i < r.length; i ++) 
            record = r[i];
            $('#listAccount').append('<li class="arrow">' + MCRM.AccountsHelper.account_link(record) + '</li>');
          
    ;

    MCRM.Account.all = function(success_callback2, options)
            var accounts;
            console.log("MCRM.Account.all");
            $('#listAccount').append('<li class="arrow"><a href="app/views/accounts/show.html">SYNC</a></li>');
            var soap = "",
            url = MCRM.SIEBEL_URL + "/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&UserName=" + MCRM.SIEBEL_USER + "&Password=" + MCRM.SIEBEL_PWD
            soap = MCRM.XML_MY_ACCOUNTS;   
            jQuery.ajax(
                type: "post", url: url, contentType: "text/xml", data: soap, dataType: "xml", processData: false,
                success: function( doc, status)
                  console.log("SUCCESS");
                  var json = jQuery.xml2json(doc);
                  //var account = json.Body.SiebelAccountQueryByIdResponse.SiebelMessage.ListOfAccountInterface.Account;
                  MCRM.Account.accounts = json.Body.Siebel_spcAccount_SiebelAccountQueryByExample_Output.ListOfAccountInterface.Account;
                  success_callback2(MCRM.Account.accounts);
                  //MCRM.screen.account_detail.setValue(account.Name + "<br>" + account.MainPhoneNumber);
                ,
              );

;

【问题讨论】:

【参考方案1】:

我发现我的问题是由于 防止默认链接();

包含“click”事件的事件侦听器被调用了两次。我只知道附加它两次会影响双重事件。

【讨论】:

以上是关于android 转屏触发了两次onConfigurationChanged()方法,很诡异,不知道有人遇到过吗?的主要内容,如果未能解决你的问题,请参考以下文章

Lambda 函数在 DynamoDB 事件上触发了两次

jQuery 收音机输入 .on('change') 触发了两次

JavaScript 事件点击触发了两次

NSNotificationCenter 通知在滑动时触发了两次

wpf点击checkbox触发了两次

UITextField EditingDidBegin 在 IOS 14.4 上触发了两次