2012-02-15 15 views
0

カウンタをインクリメントして記録する簡単なサービスを作成しました。サービスが複数回起動されたときに何が起こるか

public class AudioService extends Service { 
    int i=0; 
    private final IAudioInterface.Stub mBinder = new IAudioInterface.Stub() { 

      public int getI() 
      { 
       return i; 
      } 

     }; 

     @Override 
     public IBinder onBind(Intent intent) { 

      Log.d("onBind from service","****"); 

      return mBinder; 
     } 

     @Override 
     public void onCreate() { 

      super.onCreate(); 
      Log.d("onCreate from service","***"); 
      Log.d("i=","="+i); 
      i=i+1; 


     } 

     @Override 
     public void onDestroy() { 
      super.onDestroy(); 
      Log.d("OnDestroy Called from service","***"); 


     } 

     public void onStartCommand(Intent intent, int startId) { 
      super.onStart(intent, startId); 
      Log.d("onStartCommand from service","***"); 

     } 

     @Override 
     public boolean onUnbind(Intent intent) { 
      Log.d("onUnbind from service","***"); 
     return super.onUnbind(intent); 
     } 

私は彼のサービスのoncreateメソッドでiの値を増やしています。

public class AidlInterfaceServiceActivity extends Activity implements OnClickListener { 
/** Called when the activity is first created. */ 

private static final String TAG = "Audio:Service"; 
IAudioInterface mService = null; 
boolean connected = false; 
ServiceConnection mConnection = new ServiceConnection(){ 

    public void onServiceConnected(ComponentName arg0, IBinder service) { 
     // TODO Auto-generated method stub 
     connected = true; 
     Log.d("Service connected","**"); 
     mService = IAudioInterface.Stub.asInterface(service); 

     try { 
      Log.d("i from client","="+mService.getI()); 
     } catch (RemoteException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

    public void onServiceDisconnected(ComponentName arg0) { 
     // TODO Auto-generated method stub 
     Log.i(TAG, "Service disConnected"); 
     connected = false; 
     mService= null; 
    } 
}; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Log.d("on created ","**********"); 

    Intent music = new Intent(); 
    music.setClass(this,AudioService.class); 
    startService(music); 
    bindService(music, mConnection, Context.BIND_AUTO_CREATE); 


} 

以下のようにクライアント活動は、AIDLファイルが

interface IAudioInterface 
{ 

    int getI(); 
} 

以下のようになっている私は、クライアントの活動にiの値が「0」であるたびに実行すると問題があります。 i値が増加していません。

これらのクエリがあります。
1.サービスを複数回起動すると何が起こりますか?
2.サービスが複数回バインドされている場合に発生します。
3.サービスクラス内のデータメンバーが何回も起動されたときに、そのデータメンバーに何が起こるのですか。それらのデータメンバーが再初期化されます。

私は本当に混乱しています。誰か助けてください。

答えて

0

静的変数としてカウンタ変数を宣言すると役立ちますか?

関連する問題