onActivityResult()很奇怪

时间:2013-07-02 19:33:42

标签: java android

首先,这不是从活动中获取结果的问题。

我有这段代码:

    public void onActivityResult(int requestCode,int resultCode, Intent pData)
        {
     if ( requestCode == CODIGO_RESPUESTA )
           {
        if (resultCode == Activity.RESULT_OK )            {
            final String dato =  pData.getExtras().getString("valorid");//Obtengo el string de la subactividad
            Target =  pData.getExtras().getString("valorSujeto");
            String a=Target;
            id=Long.parseLong(dato);
            Reset();
        }
    }
}

好的,这就是问题:如果在代码中调用了,则Reset()函数会起作用,但是当从此onActivityResult()调用它时失败

当我说它失败时,我的意思是发生了奇怪的事情:Reset()是一个管理计时器的功能,并将其预设为确定值。在代码中的任何位置使用的Reset()都会导致Chronometer的正确复位。但是从onActivityResults调用,它是徒劳的。

我是Java / Android编程的新手,但我一直在寻找这个问题而且我找不到任何东西。

感谢您的帮助,谢谢!

编辑:重置()

    public void ResetCrono() {
           TimeRef=timeWhenStopped;
           Cronometro.setBase(SystemClock.elapsedRealtime() + timeWhenStopped+offsetTotalms);
           CronometroParcial.setBase(SystemClock.elapsedRealtime() - timeWhenStoppedRelative +offsetTotalms);
           Cronometro.start();
           Cronometro.stop();
           CronometroParcial.start();
           CronometroParcial.stop();
          }

1 个答案:

答案 0 :(得分:0)

您的计时器可能会被您活动的onStop()方法打断。 whateever调用onActivityResult也会强制onStop方法运行。为了测试这个理论,将reset()放在你活动的onResume()方法中,当你运行你的活动时,按下Android设备上的主页按钮,然后回到应用程序(通过进入最近打开的应用程序,而不是再次按下发射器)

将调用Reset(),这将帮助您缩小发生的情况,或者您可以看到计时器是否按预期工作

我也可能完全错误,但我会抓住机会