private class MyReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
peak = intent.getDoubleExtra("peak", peakdBa_miu);
avg = intent.getDoubleExtra("avg", avrdBa);
int m_vol = intent.getIntExtra("v", m_Vol);
bool = intent.getIntExtra("ear", bool);
time = intent.getIntExtra("time", time);
micdba = intent.getDoubleExtra("back", micdba);
}
}
<pre style="font-family: Consolas; font-size: 13.5pt;">class myServiceHandler extends Handler {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void handleMessage(android.os.Message msg) {
Intent intent = new Intent(MyService.this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(MyService.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Notifi = new Notification.Builder(getApplicationContext())
.setContentIntent(pendingIntent)
.build();
mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//AudioManager audio = (AudioManager) getSystemService(MyService.this.AUDIO_SERVICE);
boolean isEarphoneOn = (intent.getIntExtra("state", 0) > 0) ? true : false;
if (isEarphoneOn) {
Log.e("SSSS","Start");
//핸들러실행
} else {
Log.e("SSSS","STOP");
//핸들러를 삭제
}
}
};
registerReceiver(mBroadcastReceiver, mIntentFilter);
}
}</pre>
현재 위 소스가 엑티비티이고
아래 소스가 서비스 부분입니다.
헌데 확인해보니 이어폰이 연결이 되어 있으면 계속적으로
Log.e("SSSS","Start"); 이부분이 불리더라고요....
그래서 엑티비티에서 start를 보이도록 하고
stop도 보이도록 하니까
이어폰을 뺐는데도 가끔 start가 남아있는 문제가 발생하게 되엇습니다
start부분이 이어폰 연결시 계속 불리는 문제때문에 그런것인가 아니면 다른 문제인가
모르겠는데...
혹시 엑티비티와 서비스 통신에서 엑티비티를 Receiver로 하는게 아니라 다른 방법으로 해야 되나요?