Created attachment 10695 [details]
On Android you can call Device.StartTimer from any thread. On iOS you have to call it from the UI thread. Who knows what happens on Windows Phone. These all need to do the same thing. The behavior should be that you can start a timer from any thread, and the callback runs on the UI thread. On iOS it should use NSTimer (it does). On Android it should use a Handler (it does not). On Windows Phone it should use a DispatcherTimer (I don't know whether it does). Under no circumstances should any platform use System.Threading.Timer, which should probably be banned from your codebase.
To reproduce the issue run the attached project. On Android you see a counter. On iOS you just see the stock Xamarin.Forms welcome message.
I have tried this issue and able to reproduce the reported behavior at my end.
Steps To Reproduce:
1. Download the attached sample.
2. Update the xamarin.forms package of the application.
3. Run the application on Emulator/Android Device.It will show the timer count.
4. Run the application on Simulator/Device.It will show the welcome page of the Xamarin.Forms.
IDE Log: https://gist.github.com/Abhishekk360/e1601fe67fd1e4c8f6c5
Android Device Log: https://gist.github.com/Abhishekk360/88f52fe93a713027bfb6
iOS Device Log:https://gist.github.com/Abhishekk360/b0bdd3282497900dc08c
=== Xamarin Studio ===
Version 5.9 (build 436)
Installation UUID: 93e693b0-b53d-40f4-b29c-b61ff5cbe892
Mono 4.0.1 ((detached/735f5b3)
GTK+ 2.24.23 (Raleigh theme)
Package version: 400000008
=== Apple Developer Tools ===
Xcode 6.3 (7569)
=== Xamarin.iOS ===
Version: 184.108.40.2069 (Enterprise Edition)
Build date: 2015-04-27 22:39:33-0400
=== Xamarin.Android ===
Version: 220.127.116.11 (Enterprise Edition)
Android SDK: /Users/xamarin23/Desktop/android-sdk-macosx
Supported Android versions:
2.3 (API level 10)
4.0.3 (API level 15)
4.1 (API level 16)
4.2 (API level 17)
4.3 (API level 18)
4.4 (API level 19)
4.4.87 (API level 20)
5.0 (API level 21)
Java SDK: /usr
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
=== Xamarin Android Player ===
Version: Unknown version
Location: /Applications/Xamarin Android Player.app
=== Xamarin.Mac ===
Version: 18.104.22.1689 (Enterprise Edition)
=== Build Information ===
Release ID: 509000436
Git revision: 7e8ba4cbccf7b188ce5e80a90fdc4acdedb5a83f
Build date: 2015-04-23 13:19:57-04
Xamarin addins: 21fd95f743742c5237e22023996c2800ce3f8db3
=== Operating System ===
Mac OS X 10.10.0
Darwin 800BC.local 14.0.0 Darwin Kernel Version 14.0.0
Fri Sep 19 00:26:44 PDT 2014
Indeed, counter is not update on iOS.
Should be fixed in 2.3.4-pre2. Thank you!
I have checked this issue with Xamarin.Forms 22.214.171.124-pre1 and observed that this issue has been fixed. on iOS timer count shows successfully.