Android 安卓:如何启动两项活动
我有三个页面:启动活动、登录活动、活动一 活动流是Splash\u activity->Login\u activity->activity\u One。在这种情况下,我检查Splash\u activity中是否存在.db文件,它始终是应用程序的启动活动 我设置了if.db存在的条件,然后转到活动1 如果没有,则转到登录活动。 但问题是当我在按钮上删除.db文件时,单击.db文件会正确删除并显示登录页面 当我在没有登录的情况下存在应用程序时,我再次启动应用程序,先运行两次,然后检查.db文件是否不可用,然后转到登录页面,然后转到活动1。为什么会这样 这个闪屏Android 安卓:如何启动两项活动,android,Android,我有三个页面:启动活动、登录活动、活动一 活动流是Splash\u activity->Login\u activity->activity\u One。在这种情况下,我检查Splash\u activity中是否存在.db文件,它始终是应用程序的启动活动 我设置了if.db存在的条件,然后转到活动1 如果没有,则转到登录活动。 但问题是当我在按钮上删除.db文件时,单击.db文件会正确删除并显示登录页面 当我在没有登录的情况下存在应用程序时,我再次启动应用程序,先运行两次,然后检查.db文件是
public class Splash_Screen extends RootActivity
{
MyDbHelper dbhelper ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splash_page);
Thread loading = new Thread() {
public void run()
{
try
{
File database=getApplicationContext().getDatabasePath("ClassNKK.db");
if (!database.exists()) {
// Database does not exist so copy it from assets here
Log.i("Database", "Not Found");
try
{
sleep(2000);
Intent main = new Intent(Splash_Screen.this, Login_Screen.class);
startActivity(main);
Log.e("DB "," is null !!!");
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
Log.i("Database", "Found");
try {
sleep(2000);
Intent main = new Intent(Splash_Screen.this, AllPosts_Page.class);
startActivity(main);
Log.e("DB ", " is null !!!");
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (SQLiteException e) {
e.printStackTrace();
}
}
};
loading.start();
}
}
这个注销按钮在活动的一页上
imgBtn_LogOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File database = getApplicationContext().getDatabasePath(dbhelper.DATABASE_NAME);
if (!database.exists()) {
Log.e("Database", "Not Found");
} else {
Log.e("Database", "Found");
ctx.deleteDatabase(dbhelper.DATABASE_NAME);
Log.e("Database", " Deleted Completeley !!!");
File dir = new File(Environment.getExternalStorageDirectory() + "classnkk_images");
DeleteRecursive(dir);
Intent i = new Intent(Filter_Screen.this, Login_Screen.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
finish();
}
}
});
我认为问题是当你在删除数据库后启动应用程序时,它会自动创建一个没有数据的新数据库 所以,请再次检查数据库是否已创建
我建议您将参数保存在共享优先权中,并在启动屏幕中进行检查。更好 如果要存储登录凭据,可以使用SharedReference而不是sqlite。我认为这将是最合适的方法
此博客将帮助您。:)当您按下注销按钮时,您的logcat输出是什么???它是否输出“Log.e(“数据库”,“已找到”);”和“Log.e(“数据库”,“已完全删除!!!””);“Log.e(“数据库”,“已完全删除!!!””)”;"