Для каждого действия, которое я добавляю в свое приложение, я замечаю много похожего кода, используемого при инициализации действия.Вспомогательный класс со статическим методом для обёртывания подобного кода кажется правильным.
Сначала я подумал об одноэлементном классе.Я мог бы добавить статические методы / переменные и использовать их в приложении.Я действительно не пытался понять, как это будет работать в приложении для Android.В поисках немного больше я увидел кое-что о создании класса, расширяющего Application
.Для этого я сделал простой тест:
public class MyApp extends Application {
public static String DEMOTEXT = "WORKING!";
public static void ShowToast(Context context, String text) {
Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
}
}
MyApp.ShowToast(this, MyApp.DEMOTEXT); // Placed on onCreate of some Activity
Это работает точно так, как я ожидал.Это способ пойти на Android или есть лучшее соглашение?Что-нибудь еще, что я должен рассмотреть, делая это?
Кстати, я должен использовать ключевое слово final
в строке?Как насчет метода?
РЕДАКТИРОВАТЬ: Я только что прочитал это:
Обычно нет необходимости создавать подкласс Application.В большинстве случаев статические синглтоны могут предоставлять ту же функциональность более модульным способом.Если вашему синглтону необходим глобальный контекст (например, для регистрации широковещательных приемников), функции для его получения может быть задан контекст, который внутренне использует Context.getApplicationContext () при первом создании синглтона.1020 *http://developer.android.com/reference/android/app/Application.html
Должен ли я использовать синглтон тогда?