[英]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.