1

電話が開始または受信されるたびにブラウザフィールド内のURLを呼び出す単純なアプリを作成しましたが、例外が発生し続けます。

イベントロックを保持せずにアクセスされたUIエンジン。

グローバルイベントを利用しなければならないことをどこかで読みましたが、その方法がわかりません。私はこれについて長い間苦労してきましたが、エラーが発生せずに通話が開始またはダイヤルされたときにURLをロードするための助けをいただければ幸いです。

私のコード:

public class BackgroundApp extends MainScreen implements PhoneListener {

    BrowserField bf = new BrowserField();

    public BackgroundApp(){
        super();
        Phone.addPhoneListener(this); //Phonelistener added to code
        add(bf);
    }

    public void callIncoming(int callId) { //Method to listen for an incoming call and get the number
        try {
            bf.requestContent("http://www.yahoo.com/");
        } catch (Exception me) {
            me.printStackTrace();
        }
    }

    public void callAdded(int arg0) {}
    public void callAnswered(int callId) {}
    public void callConferenceCallEstablished(int callId) {}
    public void callConnected(int callId) {}
    public void callDirectConnectConnected(int callId) {}
    public void callDirectConnectDisconnected(int callId) {}
    public void callDisconnected(int callId) {}
    public void callEndedByUser(int callId) {}
    public void callFailed(int callId, int reason) {}
    public void callHeld(int callId) {}

    public void callInitiated(int callid) {
        try {
            bf.requestContent("http://www.google.com/");
        } catch (Exception me) {
            me.printStackTrace();
        }
    }

    public void callRemoved(int callId) {}
    public void callResumed(int callId) {}  /
    public void callWaiting(int callid) {}
    public void conferenceCallDisconnected(int callId) {}

    public boolean onClose() {
        System.exit(0);
        return true;
    }
}
4

1 に答える 1

0

これを交換してください

bf.requestContent( "something");

 synchronized (UiApplication.getEventLock()) 
 {
    bf.requestContent("http://www.yahoo.com/");
 }

または次のように使用します:

synchronized (UiApplication.getEventLock()) 
{
    UiApplication.getUiApplication().invokeLater(new Runnable() 
    {
        public void run() 
        {
            bf.requestContent("http://www.yahoo.com/");
        }
    });
}
于 2012-10-23T04:27:07.607 に答える