如果应用程序已经登录到主活动,则转到android中的登录页面

如果应用程序已经登录到主活动,则转到android中的登录页面,android,android-activity,login,Android,Android Activity,Login,大家好。。。 我是Android领域的新手。我使用登录和注册屏幕创建了新的Android应用程序。。。我的问题是,我想知道我的应用程序是否已经被用户登录到了“转到菜单活动”中,否则请转到android中的“登录”页面。。请帮我提供样品编码或想法..提前谢谢 这是我使用的代码。对于我的Qs,但它不起作用 package com.example.android_todist; import java.util.logging.Handler; import java.util.regex.M

大家好。。。 我是Android领域的新手。我使用登录和注册屏幕创建了新的Android应用程序。。。我的问题是,我想知道我的应用程序是否已经被用户登录到了“转到菜单活动”中,否则请转到android中的“登录”页面。。请帮我提供样品编码或想法..提前谢谢

这是我使用的代码。对于我的Qs,但它不起作用

 package com.example.android_todist;
 import java.util.logging.Handler;
  import java.util.regex.Matcher;
  import java.util.regex.Pattern;
  import android.os.Handler;
  import android.app.Activity;
 import android.app.Dialog;
  import android.content.Context;
  import android.content.Intent;
 import android.content.SharedPreferences;
  import android.content.SharedPreferences.Editor;
 import android.os.Bundle;
  import android.preference.PreferenceManager;
   import android.support.v7.app.ActionBarActivity;
   import android.view.KeyEvent;
    import android.view.View;
  import android.widget.Button;
   import android.widget.EditText;
    import android.widget.ImageButton;
   import android.widget.TextView;
     import android.widget.Toast;

public class SplashActivity extends Activity {
Intent intent;
String userName,password;
  SharedPreferences pref;
    Editor editor;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash_screen);
     pref = PreferenceManager.getDefaultSharedPreferences(this);
  String storedUsername = pref.getString(userName, "");
 String storedPassword = pref.getString(password, ""); //return nothing if no pass       saved
if (!storedUsername .equalsIgnoreCase("") || !storedPassword .equalsIgnoreCase("")) {
Intent intent  = new Intent(this, Todist1.class);
    startActivity(intent);
    finish();

}else {
    Intent  intent  = new Intent(this, Login.class);
    startActivity(intent);
   }

 new Handler().postDelayed(new Runnable() {
  @Override
        public void run() {

            startActivity(intent);
            finish();
        }
    }, 3000);

}
}

它将重定向到主页。但如果新用户打开我的应用程序,它也会重定向到主页,无法获得登录页面

这是我的错误日志..:

   07-24 04:21:36.135: E/AndroidRuntime(1080): FATAL EXCEPTION: main
   07-24 04:21:36.135: E/AndroidRuntime(1080): java.lang.NullPointerException
   07-24 04:21:36.135: E/AndroidRuntime(1080):  at   
   android.app.Instrumentation.execStartActivity(Instrumentation.java:1410)

  07-24 04:21:36.135: E/AndroidRuntime(1080):   at 
  android.app.Activity.startActivityForResult(Activity.java:3370)
  07-24 04:21:36.135: E/AndroidRuntime(1080):   at   
  android.app.Activity.startActivityForResult(Activity.java:3331)
  07-24 04:21:36.135: E/AndroidRuntime(1080):   at 
  android.app.Activity.startActivity(Activity.java:3566)
  07-24 04:21:36.135: E/AndroidRuntime(1080):   at
  android.app.Activity.startActivity(Activity.java:3534)
  07-24 04:21:36.135: E/AndroidRuntime(1080):   at   
        com.example.android_todist.SplashActivity$1.run(SplashActivity.java:50)

  07-24 04:21:36.135: E/AndroidRuntime(1080):   at 
  android.os.Handler.handleCallback(Handler.java:725)
  07-24 04:21:36.135: E/AndroidRuntime(1080):   at 
  android.os.Handler.dispatchMessage(Handler.java:92)
  07-24 04:21:36.135: E/AndroidRuntime(1080):   at  
  android.os.Looper.loop(Looper.java:137)
  07-24 04:21:36.135: E/AndroidRuntime(1080):   at  
  android.app.ActivityThread.main(ActivityThread.java:5041)
  07-24 04:21:36.135: E/AndroidRuntime(1080):   at  
  java.lang.reflect.Method.invokeNative(Native Method)
 07-24 04:21:36.135: E/AndroidRuntime(1080):    at

java.lang.reflect.Method.invoke(Method.java:511)
07-24 04:21:36.135: E/AndroidRuntime(1080):     at 
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-24 04:21:36.135: E/AndroidRuntime(1080):     at  
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-24 04:21:36.135: E/AndroidRuntime(1080):     at 
dalvik.system.NativeStart.main(Native Method)

创建一个
SplashActivity
类,然后在这里检查凭据

    public class SplashActivity extends Activity {

        /** Called when the activity is first created. */
        Intent intent;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.splash_screen);
            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
 String storedUsername = prefs.getString(KEY_USERNAME, "Default Value if not found");
 String storedPassword = prefs.getString(KEY_PASSWORD, ""); //return nothing if no pass saved
if (!storedUsername .equalsIgnoreCase("") || !storedPassword .equalsIgnoreCase("")) {
            intent  = new Intent(this, MainActivity.class);
            startActivity(intent);
            finish();

        }else {
            intent  = new Intent(this, LoginActivity.class);
            startActivity(intent);
           }

            Handler handler = new Handler();

            handler.postDelayed(new Runnable() {
                public void run() {

                    startActivity(intent);
                    finish();
                }
            }, 3000);

        }

    }// class
  • 首先,您必须维护应用程序的启动屏幕活动
  • 通过使用共享首选项,您必须保存您的登录状态(默认为“false”,登录“true”之后),请参阅此链接以了解首选项
  • 在启动应用程序时,您必须检查登录状态,根据该值,您可以导航到相应的活动

  • 选中此项请查看我的编码…删除
    import java.util.logging.Handler您的编码正在工作正在工作。。但是,如果登录到intnet,则项目将停止。。显示错误android.app.Instrumentation.execStartActivity示例.android_todist.SplashActivity$1.run at android.os.handle.handleCallback(handle.java:725)抱歉,我已经尝试过了。。拥有15+的上传图像声誉..感谢您的回复..实际上..已经使用共享首选项存储了登录用户详细信息..我的需要是用户是否打开我的应用..如果他们已经登录意味着..重定向主页否则重定向到登录页面..处理程序处理程序=新处理程序();handler.postDelayed(new Runnable(){On handler无法在postDelayed上实例化类型处理程序将强制转换为hnadler..}您得到了什么错误??发布Logcat值。很抱歉,我得到了红色下划线错误..显示{On handler无法在postDelayed上实例化类型处理程序将强制转换为hnadler..}
    import android.os.Handler;
    import this到您的代码中。如果您已经登录到设备,它将正确地进入主活动,但是如果您想进入同一设备中的其他用户的登录活动,您应该首先注销,您必须在首选项中保存false。我已经使用共享首选项存储了登录用户详细信息。..My need是指用户是否打开我的应用..如果他们已经登录意味着..重定向主页或重定向到登录页。。