У меня есть несколько действий A, B, C У меня есть метод isOnline в классе D, который создает диалог (всегда такой же). Из действий A/B/C я звоню isOnline. Возможно ли найти операцию, которая называется isOnline, только в классе D без отправки объекта из A/B/C в D?Как обратиться к последнему виду деятельности?
ответ
Есть ли что-то не так с передачей ссылки на деятельность?
public boolean isOnline(Activity a) {
// ...
}
Вы могли бы пройти ни в чем на самом деле, может быть, только имя деятельности (или какой-либо другой уникальный идентификатор):
public class MyActivity extends Activity {
public static final String TAG = "MyActivity";
void someMethod() {
OtherClass.isOnline(TAG);
}
}
public boolean isOnline(String tag) {
// inspect TAG
}
действительно ничего плохого. Я просто решил реализовать сетевое подключение до запуска любой сетевой операции, поэтому я не могу обновить каждый класс для этой цели. Надеялся какой-то универсальной ссылкой. – Yarh
Создайте класс BaseActivity, который расширяет все ваши другие действия и помещает 'isOnline()' там. – Karakuri
на стороне отметить, что это звучит как вы пытаетесь определить, есть ли интернет-соединение или нет. Эта библиотека сделает это: https://github.com/novoda/merlin – Blundell
трюк заключается в том, чтобы заполнить эту проверку. – njzk2