繁体   English   中英

启动画面,将检查用户是否已经注册

[英]Splash Screen that will check if user is already registered

我希望我的启动屏幕检查用户是否已经注册:如果该人已经注册,它将进入登录屏幕。 否则,它将进行注册活动。 我已经在同一包中创建了一个数据库类。 我面临的问题是此初始屏幕无法正常工作。 当我运行项目时,它将直接带我到登录屏幕。 我觉得启动画面被跳过了...请帮助!

public class SplashScreen extends Activity
{

protected void onActivityResult(int reqCode, int resultCode, Intent data)
 {

super.onActivityResult(reqCode, resultCode, data); 
if (resultCode != -1)
{
    finish();
    Database db = new Database(this);
    int k = db.getCount();
    Log.d("The Number of Row : ", String.valueOf(k));


    if (k != 0)//If we already have an entry in the database then will move from the splash screen to the loginCode activity
    {
      finish();
      Intent intent1 = new Intent(SplashScreen.this, LoginCode.class);
      startActivity(intent1);
      overridePendingTransition(R.anim.action_fade_in, R.anim.action_fade_out);
    }

    else//if launching app the first time then we will need to register
    {
      finish();
      Intent intent2 = new Intent(SplashScreen.this, RegPasscode.class);
      startActivity(intent2);
      overridePendingTransition(R.anim.action_fade_in, R.anim.action_fade_out);
    }
    db.close();

  }
else
{
    Log.i("RobMeNot", "Administration enable FAILED!");

}

}

在您的AndroidManifest.xml设置以下过滤器:

 <intent-filter>

            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
 </intent-filter>

到您的SplashScreen活动,并将其从LoginScreen删除。

最后,您的活动应如下所示:

    <activity
            android:name="your.package.SplashScreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

以及为什么要在onActivityResult执行所有这些逻辑? 您应该像这样检查要在onCreate启动的屏幕:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    try
    {
        Database db = new Database(this);
        int k = db.getCount();
        Log.d("The Number of Row : ", String.valueOf(k));

        if (k != 0)//If we already have an entry in the database then will move from the splash screen to the loginCode activity
        {
            finish();
            Intent intent1 = new Intent(SplashScreen.this, LoginCode.class);
            startActivity(intent1);
            overridePendingTransition(R.anim.action_fade_in, R.anim.action_fade_out);
        }

        else//if launching app the first time then we will need to register
        {
            finish();
            Intent intent2 = new Intent(SplashScreen.this, RegPasscode.class);
            startActivity(intent2);
            overridePendingTransition(R.anim.action_fade_in, R.anim.action_fade_out);
        }
    }finally {
        db.close();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM