2012-04-28 6 views
0

私はロケーションアップデートを取得するバックグラウンドサービスを持っており、私のtabActivityからサービスにアクセスしたいと思います。 (方法は静的です)MainActivityによるバックグラウンドサービスへのアクセス

これを達成する方法を教えてもらえますか? xxxService.yyyMethod()が動作していない場合は動作しません。

私はアクティビティによって開始されたバックグラウンドサービスについて話していますが、そのアクティビティはユーザによって閉じられ、再開されました。サービスは同じアクティビティにバインドされており、start()もアクティビティが閉じられた後でも存在し続けます。働かないことによって私は方法が何も返されていないことを意味する間にそれを意味する。また、メソッド呼び出し後のステートメントは実行されません。 - Ishwar 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行目が実行されます。それ以外の場合は実行されません。 P.S:私の活動をやめないと、すべてが機能します。この問題は、アクティビティを終了して再起動した場合にのみ発生します。

+0

「動作していません...?」..もっと説明すると何が起こっていますか? – 5hssba

+0

私は、アクティビティによって開始されたバックグラウンドサービスについて話しています。その後、アクティビティはユーザによって閉じられ、再開されました。サービスは同じアクティビティにバインドされており、start()もアクティビティが閉じられた後でも存在し続けます。 私が意味するところでは、メソッドが何も返さないということです。また、メソッド呼び出し後のステートメントは実行されません。 – Ishwar

+0

more info with more info – Ishwar

答えて

0

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

+0

これは私がやっていることです!私はコンパイルエラーや何かを得ていないが、私のアプリはちょうどyyyMethodが想定されている値を返しません!実際には、実行を停止します。 – Ishwar

+0

私は、アクティビティによって開始されたバックグラウンドサービスについて話しています。その後、アクティビティはユーザによって閉じられ、再開されました。サービスはバインドされていてstart()(アクティビティが閉じられた後でも存在し続けます)。 – Ishwar

+0

いくつかコードやスタックトレースを渡せますか? –

関連する問題