package com.kescoode.xmail.ui.activity.internal;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import com.kescoode.xmail.service.MailService;
import com.kescoode.xmail.service.aidl.IRemoteMailService;
/**
* 绑定{@link com.kescoode.xmail.service.MailService}的Activity基类
*
* @author Kesco Lin
*/
public abstract class MailConnActivity extends AppActivity {
public IRemoteMailService mailService;
private final ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mailService = IRemoteMailService.Stub.asInterface(service);
}
@Override
public void onServiceDisconnected(ComponentName name) {
mailService = null;
}
};
@Override
protected void onResume() {
super.onResume();
connService();
}
@Override
protected void onPause() {
super.onPause();
unbindService(getConn());
}
private void connService() {
Intent intent = new Intent(this, MailService.class);
if (!bindService(intent, getConn(), BIND_AUTO_CREATE)) {
throw new RuntimeException("Can not bind MailService.");
}
}
protected ServiceConnection getConn() {
return conn;
}
}