0

そのため、位置情報の更新を取得するバックグラウンド サービスがあり、tabActivity からサービスにアクセスしたいと考えています。(メソッドは静的です)

それを達成する方法を教えてもらえますか?xxxService.yyyMethod() を試しても機能しません。

アクティビティによって開始されたバックグラウンド サービスについて話しているのですが、アクティビティはユーザーによって閉じられ、再開されました。サービスは同じアクティビティと start() にバインドされました (したがって、アクティビティが閉じられた後も存在し続けます)。機能しないということは、メソッドが何も返さないことを意味しますが、それは想定されています。また、メソッド呼び出しの後のステートメントは実行されません。– イシュワル 27 秒前 編集

アクティビティ内: 境界: *

mConnection = new ServiceConnection() {    
            public void onServiceConnected(ComponentName className, IBinder service) {
                temp="LocationService bound";

                locationService = ((LocationService.LocalBinder) service).getService();
                locationService.setProfile(Profile);
                locationService.start();
                Log.e("COnnected","");
                mBound = true;              
            }
            public void onServiceDisconnected(ComponentName arg0) {
                mBound = false;
            }
        };

*

エラー領域: *

LocationService.setProfile(homeProfile); (works fine)       
LocationService.getL(); (Any statement beyond this point doesnt get executed)
Log.e("Executed","LS");                     settingsActivity.status.append(Boolean.toString(LocationService.isRunning()));

*

2 行目をコメントアウトすると、3 行目と 4 行目が実行されます。PS: 活動をやめなければ、すべてうまくいきます。この問題は、アクティビティを終了して再開した場合にのみ発生します。

4

1 に答える 1

0

からのみアクティビティを呼び出すことができますTabActivity。タブに特定のアクティビティを設定し、そのアクティビティからのメソッドにアクセスする必要がありますService。したがって、基本的にあなたのxxxService.yyyMethod()呼び出しはアクティビティにあるはずです。

于 2012-04-28T09:42:30.013 に答える