Я унаследовал некоторый код Android, и я замечаю, что существует класс, расширяющий Сервис, но не объявленный в манифесте. Я нахожу это тревожным. Я исследовал дальше, и я вижу, что служба не объявлена в манифесте, но она все еще работает!android -Инструменты создания экземпляра класса службы
что происходящий находится в деятельности onResume разработчик называет следующие:
@Override
protected void onResume() {
super.onResume();
mMyService = new MyService();
}
@Override
protected void onStart() {
super.onStart();
mMyService = new MyService();
}
я никогда не видел эту практику раньше. это вызовет утечку памяти? Компоненты Android объявлены в манифесте и никогда не создаются правильно? Система позаботится об этом для вас.
Сам сервис объявляется как этот
public class MyService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
//... a bunch of other methods that do stuff by calling from the "new" instance would be below.
}
Опять же, ничего не декларируется в манифесте. это еще один образец, и это безопасно?