Я создал абстрактный класс, чтобы предотвратить избыточный код в каждом из моих действий.Аннотация класс, чтобы избавиться от избыточного кода в действиях
public abstract class MyGeneralizedActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
@Override
public void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
//...
}
Я был прекрасно, делая это:
public class MyActivity extends MyGeneralizedActivity{...}
Но теперь я попал в точку, где я должен простираться от MyActivity
FragmentActivity
. Это означает, что я больше не могу распространяться от MyGeneralizedActivity
.
Теперь мне интересно, можно ли создать общую абстрактную структуру, чтобы расширить все мои действия.
EDIT
Только путем расширения MyGeneralizedActivity
от FragmentActivity
не решит мою проблему. например TabActivity
приведет к той же проблеме.
UPDATE
Для тех, кто может быть заинтересован в решении с той же проблемой в Android я нашел простое решение. Существует класс Application, который обеспечивает, помимо прочего, интерфейс ActivityLifecycleCallbacks. Он делает именно то, что мне нужно, позволяя нам перехватывать и добавлять ценность в важные события для всех видов деятельности.
Все, что вам нужно сделать, это расширить класс Android Application
и создать частный класс, в котором реализуется ActivityLifecycleCallbacks
.
Не забудьте добавить/переименовать приложение в файле AndroidManifests
:
<application
android:name=".application.MyApplication"
//...
/>
Вы можете создать интерфейс с методом по умолчанию при использовании Java 8. Затем вы можете реализовать несколько интерфейсов таким образом и получить желаемый результат. –
Данный ['FragmentActivity' сам является подклассом' Activity'] (http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html), есть ли причина, по которой вы не можете просто make 'MyGeneralizedActivity расширяет FragmentActivity'? – PPartisan
Почему вы не распространяетесь на AppCompatActivity? Кроме того, просто любопытно, какое у вас требование для FragmentActivity? – AdamMc331