Я пишу приложение для Android с Xamarin.У меня есть начальная активность, которая показывает стартовый экран и инициализирует приложение.Когда приложение инициализируется, я заканчиваю действие и начинаю следующее.Вот метод StartActivity.OnCreate
:
protected override async void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.StartScreen);
// initializing app
string status = await DownloadSomeString();
Finish();
// starting a main activity after initialization
var intent = new Intent(this, typeof(MainActivity));
StartActivity(intent);
}
А вот метод MainActivity.OnCreate
:
protected override async void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.MainActivity);
await Task.Delay(3000); // #1
// if the prevoius line is commented the textview is null
var textView = FindViewById<TextView>(Resource.Id.Text);
textView.Text = "Some text";
}
Если я прокомментирую строку # 1 из этого метода FindViewById
, вернем ноль.Я полагаю, что инициализация пользовательского интерфейса для MainActivity занимает некоторое время, но для меня это довольно странно, поскольку я предполагал, что элементы пользовательского интерфейса должны быть уже инициализированы после вызова SetContentView
.Может быть, у кого-нибудь есть идеи, как решить эту проблему?