Выберите активность для загрузки при запуске - Android
У меня есть приложение для Android, которое должно решить, какое действие загружать первым (из двух действий) при запуске. Приложение является своего рода сигналом тревоги. Итак, дело в том, что мне нужно запустить одно из этих действий, проверив, установлен ли уже будильник или нет.
- Есть ли способ проверить это при запуске, используя класс AlarmManager, не конфликтуя с приложением тревоги по умолчанию в моем телефоне.
- Или я должен использовать базу данных временного метода хранения данных, чтобы получить детали.
- Как я могу развить это. Пожалуйста, помогите мне.
2 ответа
Определите деятельность, которая позаботится об этом. Дайте ему фильтр намерений, чтобы он запускался первым
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
В этом упражнении выполните логику, которая решает, какое действие следует открыть.
Например, мое приложение имеет SplashActivity, которое проверяет, вошел ли пользователь в систему. Если его нет, оно запускает LoginActivity, если оно есть, оно переходит к контентной активности.
<activity
android:name=".SplashActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
а также
public class SplashActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (userLoggedIn()) {
startActivity(new Intent(this, ContentActivity.class));
} else {
startActivity(new Intent(this, LoginActivity.class));
}
}
}
Иметь общую базу Activity
и в его onCreate
метод вы можете написать логику на выбор Activity
и начать выбранный Activity
оттуда. База Activity
не нужно загружать какой-либо пользовательский интерфейс (т.е. не нужно звонить setContentView
) и это можно назвать finish()
только после запуска Intent
,