Я только начинаю работать с Android и читаю BroadcastReceiver. Поскольку MainActivity использовался только для получения времени будильника в считанные секунды, мне казалось, что нужно, чтобы файлы XML файлов были необходимы для каждой активности в Android. Я имею в виду, возможно ли иметь приложение, которое при запуске не показывает вид, но успешно настроит приемник?
Должны ли каждая деятельность иметь макет?
Ответ 1
Ответ - да, возможно. Не нужно иметь пользовательский интерфейс. Он упоминается в документации, например:
Активность - это единственная, целенаправленная вещь, которую пользователь может сделать. Почти все действия взаимодействуют с пользователем [...]
(см. http://developer.android.com/reference/android/app/Activity.html)
Связанный вопрос SO: fooobar.com/questions/927339/...
Например, чтобы отобразить Toast из Activity без макета, вы должны определить действие в своем манифесте так:
<activity
android:name=".MainActivity"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Код будет выглядеть так:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(this, "I'm alive", Toast.LENGTH_LONG).show();
finish();
}
}
Ответ 2
Вы можете реализовать Activity без пользовательского интерфейса. В манифесте вы можете указать android:theme="@android:style/Theme.NoDisplay"
. Взгляните на это
Вы также можете реализовать Сервис, у которого нет пользовательского интерфейса, поэтому вам не нужна инфляция макета. Служба просто работает в фоновом режиме и не отображает просмотров. Взгляните на Руководство по обучению Android и API, чтобы узнать больше о сервисах
Ответ 3
Я думаю, вам нужно больше понять, что такое контекст в Android. BroadcastReceiver отличается от Activity, макетная инфляция не нужна.