指定要动态启动的 activity

Specifying which activity to launch dynamically

我正在开发一个聊天应用程序。

登录后,用户下次启动应用程序时应导航到主页面。与 WhatsApp 一样,它没有启动画面。那么,我在哪里检查用户下次是否已登录? 如果用户已经登录,我不想再次启动登录屏幕

我可以在第一次启动服务或其他东西时检查接下来显示的是哪个 activity 吗?

使用 Shared Preference 获取商店登录详细信息,如果用户已登录,请在 Main 或 loginActivity 中执行您想要的操作,否则打印 alert/Toast 首先登录。

始终先打开 LoginActivity。当用户登录时,将确定用户当前登录会话的唯一令牌存储在共享首选项中。并在用户注销时删除令牌。 因此,每当用户打开应用程序时,检查登录 activity,如果令牌存在,将用户带到主 activity,如果不存在,则留在登录 activity.

也许您可以创建一个空的 activity 来扩展 Activity(不是 AppCompatActivity)并在那里执行逻辑,因为我们无法直接启动服务。

您不需要在那里调用 setContentView。所以不需要布局文件。将此添加到您的清单 android:theme="@android:style/Theme.NoDisplay"

你可以这样用;

final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            if (isLoggedIn-> you can check if user is logged in or not here )
               load your main activity
        else
               load login activity
        }
    }, 100);

将此代码放入您的主程序中 activity。

或者您可以根据条件加载不同的布局,但您必须将所有登录 activity 视图放在主 activity.

final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            if (isLoggedIn)
                setContentView(R.layout.activity_main);
        else
                setContentView(R.layout.activity_main2);

        }
    }, 100);