现在的需求是。开机之后或者不打开App的情况下监听耳机的插拔情况。从而执行不同的操作。
现在的思路是。
开机启动一个service,在service中监听耳机插拔情况。如果耳机插入则打开一个Activity。否则关闭当前Activity。
整个思路是否有问题??
现在的需求是。开机之后或者不打开App的情况下监听耳机的插拔情况。从而执行不同的操作。
现在的思路是。
开机启动一个service,在service中监听耳机插拔情况。如果耳机插入则打开一个Activity。否则关闭当前Activity。
整个思路是否有问题??
import android.app.ActivityManager;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.util.Log;
import java.util.List;
public class HeadPhoneService extends Service {
public HeadPhoneService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onCreate() {
super.onCreate();
Log.e("xxxx","service start");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_HEADSET_PLUG);
registerReceiver(headsetReceiver, intentFilter);
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
Intent service = new Intent(this, HeadPhoneService.class);
this.startService(service);
super.onDestroy();
}
private BroadcastReceiver headsetReceiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_HEADSET_PLUG.equals(action)) {
Log.e("xxxx","headsetchange");
if (intent.hasExtra("state")) {
int state = intent.getIntExtra("state", 0);
if (state == 1) {
} else if(state == 0){
}
Log.e("xxxx","headphone"+state);
}
}
}
};
}
2 回答1.3k 阅读✓ 已解决
2 回答2.7k 阅读
2 回答1.8k 阅读
1 回答2.1k 阅读
1 回答1.2k 阅读
1 回答1.3k 阅读
1 回答600 阅读✓ 已解决
问题就是service进程如何存活