Я хочу знать, в чем разница между интерфейсом реализации и созданием его экземпляра, вот пример кода, этот код позволяет общаться между IntentService и Activity, используя ResultReceiver ,Разница между реализацией интерфейса и созданием его экземпляра
MySimpleReceiver Класс:
public class MySimpleReceiver extends ResultReceiver {
public static final Creator CREATOR = null;
private Receiver receiver;
// Constructor takes a handler
public MySimpleReceiver(Handler handler) {
super(handler);
}
// Setter for assigning the receiver
public void setReceiver(Receiver receiver) {
this.receiver = receiver;
}
// Defines our event interface for communication
public interface Receiver {
void onReceiveResult(int resultCode, Bundle resultData);
}
// Delegate method which passes the result to the receiver if the receiver
// has been assigned
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
if (receiver != null) {
receiver.onReceiveResult(resultCode, resultData);
}
}
}
что лучший способ установки обратного вызова, когда данные получены от службы:
реализующего MySimpleReceiver.Receiver
интерфейс в MainActivity:
public class MainActivity extends Activity implements MySimpleReceiver.Receiver
{
@Override
public void onReceiveResult(int resultCode, Bundle resultData) {
//
}
}
или создать экземпляр t его интерфейс в MainActivity:
public class MainActivity extends Activity {
public MySimpleReceiver receiverForSimple;
// Setup the callback for when data is received from the service
public void setupServiceReceiver() {
receiverForSimple = new MySimpleReceiver(new Handler());
// This is where we specify what happens when data is received from the
// service
receiverForSimple.setReceiver(new MySimpleReceiver.Receiver() {
@Override
public void onReceiveResult(int resultCode, Bundle resultData) {
if (resultCode == RESULT_OK) {
String resultValue = resultData.getString("resultValue");
Toast.makeText(MainActivity.this, resultValue, Toast.LENGTH_SHORT).show();
}
}
});
}
}
и в чем разница между ними? спасибо
спасибо, но мой вопрос был: когда я должен использовать первый код и когда я должен использовать второй код? –
@ OtmàaneFikri - Смотрите мое обновление –