首先,这不是从活动中获取结果的问题。
我有这段代码:
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();
}
答案 0 :(得分:0)
您的计时器可能会被您活动的onStop()
方法打断。 whateever调用onActivityResult也会强制onStop方法运行。为了测试这个理论,将reset()
放在你活动的onResume()方法中,当你运行你的活动时,按下Android设备上的主页按钮,然后回到应用程序(通过进入最近打开的应用程序,而不是再次按下发射器)
将调用Reset(),这将帮助您缩小发生的情况,或者您可以看到计时器是否按预期工作
我也可能完全错误,但我会抓住机会