Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果活动关闭,Android杀死计时器_Android_Timer_Xamarin - Fatal编程技术网

如果活动关闭,Android杀死计时器

如果活动关闭,Android杀死计时器,android,timer,xamarin,Android,Timer,Xamarin,我想在活动结束后停止计时器 现在,我创建了一个活动,每20秒检查一次服务是否有更新。 如果有,它将发送具有相同活动的通知,如果单击它,它将打开相同的活动。因此,具有计时器的活动 我尝试使用: resultIntent.SetFlags (ActivityFlags.SingleTop); [Activity (LaunchMode = LaunchMode.SingleTop, NoHistory = true) ] // Creates the Launchmode single top an

我想在活动结束后停止计时器

现在,我创建了一个活动,每20秒检查一次服务是否有更新。 如果有,它将发送具有相同活动的通知,如果单击它,它将打开相同的活动。因此,具有计时器的活动

我尝试使用:

resultIntent.SetFlags (ActivityFlags.SingleTop);
[Activity (LaunchMode = LaunchMode.SingleTop, NoHistory = true) ] // Creates the Launchmode single top and set the nohistory true in the androidmanifest
但这仍然创建了一个新的活动,一个新的计时器和一个新的oncreate提供了一个变量,该变量在oncreate中告诉我它是否是第一个活动将不起作用,因为timerevent还检查活动是否暂停,如果计时器事件位于打开的活动之外的另一个活动中,我不能做什么


因此,我无法让它工作,因为它将打开当前活动活动而不是新活动,但现在我想研究停止其他实际上相同的类活动的计时器,以便在有新活动时不会触发通知。

尝试此参数,它将解决您的问题:

<activity android:name="com.example.MyActivity"
                  android:label="@string/app_name"
                  android:launchMode="singleTask">

使用清单文件中的launchmode SinglinInstance尝试过之后,它不起作用。检查更新的最佳方法是每x秒编程一次警报,然后您无需设置任何计时器或担心活动关闭,因为即使活动关闭,AlarmManager仍在后台启动
timer.cancel();
timer.purge();