2011-04-06 104 views
1

嗨,我試圖在關閉另一個屏幕後檢測返回到屏幕, 應該在從我的應用程序屏幕返回時工作,而且在拍攝視頻之後還要從設備相機 返回。在覆蓋方法onExposed()我能夠檢測到這種情況,但它被稱爲太多次,並且也顯示對話時(警報)調用。 有更好的方法來檢測返回屏幕?當 帶來了這個應用程序的 前景黑莓返回屏幕檢測

protected void onExposed() { 
    // return to screen detected 
    MainApp.addLog("onExposed"); 
} 
+0

乾草ü如何使用類Application.activate方法? – Kirti 2013-11-23 14:06:57

回答

3

從設備攝像頭返回 後拍攝視頻

檢查Application.activate()

系統將調用此方法。默認情況下,此方法 什麼都不做。當 被帶到前臺時,將此方法重寫爲 執行附加處理。

+0

感謝這個作品,但我也需要返回到屏幕裏面的應用程序 – Janci 2011-04-06 14:11:29

+0

'回到屏幕'我只是不知道該怎麼建議。這聽起來有點奇怪。 – 2011-04-06 14:25:49

+0

如何在類文件中使用Application.activate()方法?如果你有,請提供任何示例代碼 – Kirti 2013-11-23 14:07:38

1

我不得不做類似的事情,發現它很混亂,因爲onExposed()可以在不確定的時間被多次調用。
爲了檢測屏幕A(主屏幕)中屏幕B的返回,我使用了屏幕B的onUiEngineAttached(false),它在彈出時被調用。
要使用回撥:

public interface Ievent { 
    public void backFromScreenBEvent(); 
} 

屏幕答:

public class ScreenA extends MainScreen implements Ievent 
{ 
    private ScreenB screenB; 

    // constructor 
    public ScreenA() 
    { 
     screenB = new ScreenB(this); // pass over Ievent 
     // .... 
    } 

    public void backFromScreenBEvent() 
    { 
     // screen B is returning, do something 
    } 

屏幕B:

public final class ScreenB extends MainScreen 
{ 
    private Ievent event; 

    // constructor 
    public ScreenB(final Ievent event) 
    { 
     this.event = event; 
     // ... 
    } 

    protected void onUiEngineAttached(boolean attached) { 
     super.onUiEngineAttached(attached); 
     if (!attached) { 
      event.backFromScreenBEvent(); // notify event 
     } 
    }