我正在开发一个具有两项活动的应用程序:LoginActivity
and MainActivity
。当用户首次打开应用程序时,他将登录并且他的凭据(用户名和令牌)保存在Preferences
.
现在,如果用户再次打开应用程序MainActivity
应该开始。我尝试在 Application 类中的这些活动之间切换,并从清单中删除 LAUNCHER_ACTIVITY 的意图过滤器,但它不起作用。
有没有什么方法可以根据保存的首选项以编程方式在启动器活动之间进行切换?
有没有什么方法可以根据保存的首选项以编程方式在启动器活动之间进行切换?
你可以试试这个:
步骤#1:有LoginActivity
有LAUNCHER
<intent-filter>
和平常一样,并且有MainActivity
没有<intent-filter>
.
步骤#2:有an <activity-alias>清单中的元素 http://developer.android.com/guide/topics/manifest/activity-alias-element.html指向MainActivity
具有LAUNCHER
<intent-filter>
.
步骤#3:放置android:enabled="false"
on the <activity-alias>
,所以默认情况下它是禁用的,所以当应用程序第一次安装时,唯一的启动器图标是LoginActivity
.
步骤#4:当用户登录时,您想要更改MainActivity
是启动器活动,使用PackageManager
and setComponentEnabledSetting()
使<activity-alias>
启用和禁用LoginActivity
.
并非所有主屏幕都会动态检测到此更改,对于这些主屏幕,设备很可能需要重新启动才能获取更改。因此,最好坚持使用单个启动器活动。如果您愿意,该启动器活动可以Theme.NoDisplay
并简单地路由到正确的“真实”活动onCreate()
,根据法希姆的回答。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)