0

首先,这不是从 Activity 获取结果的问题。

我有这个代码:

    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() 是一个管理 Chronometer 的函数,并将其预设为确定值。代码中到处使用的 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();
          }
4

1 回答 1

0

onStop()您的计时器可能会被您的活动方式打断。无论调用 onActivityResult 也将强制 onStop 方法运行。要测试这个理论reset(),请在您的活动的 onResume() 方法中输入活动,并在您运行活动时,按 Android 设备上的主页按钮,然后返回应用程序(通过进入最近打开的应用程序,而不是按启动器再次)

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

我也可能完全不正确,但我会抓住这个机会

于 2013-07-02T19:38:54.093 回答