2011-01-12 3 views
1

У меня есть несколько методов, которые следует вызывать только при запуске приложения. На данный момент, я поместил методы в OnApplicationActivated:Microsoft Surface: Где определить методы, которые должны быть вызваны во время запуска?

private void OnApplicationActivated(object sender, EventArgs e) 
{ 
    Sound.loadSounds();    
    GetLocalProjects(); 
    GetProjects();    
} 

Но OnApplicationActivated isalso называется, если приложение было в «паузы» состояние (отображается оболочка) и reactived. Как я могу избежать этого? Я хочу назвать эти методы только во время запуска.

ответ

1

Я ничего о Microsoft Surface не знаю, так что я не могу вам сказать, если есть и другие события, которые могут быть подключены, но Wouldn Легко ли использовать переменную булевского экземпляра, чтобы проверить, была ли выполнена инициализация или нет?

bool _isInitialized = false; 
private void OnApplicationActivated(object sender, EventArgs e) {  
    if(!_isInitialized){ 
    Sound.loadSounds(); 
    GetLocalProjects(); 
    GetProjects();   
    _isInitialized = true; 
    } 
} 
+0

Lol же идея ... маленький другой подход либо должен работать –

+0

haha, yepp ... может быть, вы положительный, и я отрицательный .. относительно начальных значений булевых :) – Ozzy

+0

Хорошо, это очевидно , но все равно, если я не могу найти встроенную функцию, я делаю это – RoflcoptrException

0
boolean startup = true; 
private void OnApplicationActivated(object sender, EventArgs e) 
{ 
    If (startup) 
    { 
    Sound.loadSounds();    
    GetLocalProjects(); 
    GetProjects(); 
    startup = false; 
    }   
} 

Лучшее быстрое решение я мог придумать

0

Как вы это сделаете для приложения, отличного от поверхности? Переопределить OnInitialized в главном окне.