指定要动态启动的活动

时间:2017-12-05 07:02:52

标签: android android-activity service launcher

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

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

我可以在第一时间启动服务或其他内容,以便检查下一个显示的活动吗?

4 个答案:

答案 0 :(得分:0)

使用共享首选项来存储商店登录详细信息,如果用户登录,请执行主要或loginActivity,然后执行其他明智的打印提醒/ Toast登录。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

您无需在那里调用setContentView。因此不需要布局文件。在您的清单android:theme="@android:style/Theme.NoDisplay"

中添加此内容

答案 3 :(得分:0)

您可以像使用它一样使用

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);

将此代码放在您的主要活动中。

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

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);