Выберите активность для загрузки при запуске - Android

У меня есть приложение для Android, которое должно решить, какое действие загружать первым (из двух действий) при запуске. Приложение является своего рода сигналом тревоги. Итак, дело в том, что мне нужно запустить одно из этих действий, проверив, установлен ли уже будильник или нет.

  1. Есть ли способ проверить это при запуске, используя класс AlarmManager, не конфликтуя с приложением тревоги по умолчанию в моем телефоне.
  2. Или я должен использовать базу данных временного метода хранения данных, чтобы получить детали.
  3. Как я могу развить это. Пожалуйста, помогите мне.

2 ответа

Решение
  1. Определите деятельность, которая позаботится об этом. Дайте ему фильтр намерений, чтобы он запускался первым

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    
  2. В этом упражнении выполните логику, которая решает, какое действие следует открыть.

Например, мое приложение имеет 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,

Другие вопросы по тегам