选择要在启动时加载的活动 - Android

时间:2016-05-03 09:51:06

标签: android startup

我有一个Android应用程序需要在启动时决定首先加载哪个活动(来自2个活动)。该应用程序是一种警报。所以,我必须通过检查是否已设置警报或未设置警报来启动其中一项活动。

  1. 有没有办法在启动时使用AlarmManager类检查这一点,而不会与手机中的默认闹钟应用程序冲突。
  2. 或者我应该使用临时数据存储方法的数据库来获取详细信息。
  3. 我怎样才能发展这一点。 请帮帮我。

2 个答案:

答案 0 :(得分:4)

  1. 定义一个处理此问题的活动。给它一个intent过滤器,使其首先启动

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    
  2. 在此活动中,执行决定应打开哪个活动的逻辑。

  3. 例如,我的应用程序有一个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));
            }
        }
    }
    

答案 1 :(得分:0)

拥有一个共同的基础Activity,并且在其onCreate方法中,您可以编写逻辑以从Activity中进行选择,并从那里开始选择的Activity。基础Activity无需加载任何用户界面(即无需拨打setContentView),只需在启动finish()后调用Intent