Adr*_*ian 15 android android-activity
我有一个包含2个活动的应用程序,LogonAct和MainAct.LogonAct是一个登录活动,我想强制用户每次返回应用程序时都要经历.我在LogonAct上设置了android:clearTaskOnLaunch ="true".
当我第一次启动应用程序时,我会经历这一系列的屏幕,
Home -> LogonAct -> MainAct -> Home
然后我按照这个顺序,
LogonAct -> Back -> MainAct
为什么要把我带回MainAct?由于LogonAct具有android:clearTaskOnLaunch ="true",因此该活动不应该被关闭.当我从LogonAct点击Back按钮时,我希望能够回到Home.
来自AndroidManifest.xml的相关代码段,
Run Code Online (Sandbox Code Playgroud)<activity android:name=".LogonAct" android:clearTaskOnLaunch="true"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name=".MainAct"> <meta-data android:name="android.app.default_searchable" android:value=".SearchResults" /> </activity>
我用的是1.5.
任何帮助赞赏.
Ars*_*niy 15
您可以执行以下操作:
1.在AndroidManifest中设置clearTaskOnLaunch ="true",在主要活动
2的声明中,在必须关闭的活动中:
@Override
public void onBackPressed(){
moveTaskToBack(true);
}
Run Code Online (Sandbox Code Playgroud)
因此,如果用户按下 - 如果用户再次启动应用程序,它将返回主屏幕 - 任务堆栈清除并且他进入根主要活动
Chr*_*Orr 11
android:clearTaskOnLaunch提及该属性适用于"从主屏幕重新启动[活动]" 的文档.
但是,在您的情况下,您按下Home按钮返回主屏幕,而不是按下Back按钮.这意味着您的应用程序实际上并未重新启动,因为它MainAct没有"完成".只有当您按下Back(或者Android杀死任务以节省资源等)时才会发生这种情况.
由于您的应用程序中只有两个活动,您可以设置该android:noHistory属性MainAct,从而确保用户永远不会返回它并且必须通过LogonAct.
顺便说一句,强迫用户每次离开应用程序时都会重新登录(例如,当他们接到电话时),这似乎有点烦人.
您可以在应用程序的持久存储中保留具有超时的会话令牌,或者使用服务保持网络连接打开,如果这是您的应用程序的工作方式 - 当然这取决于您和您的要求.:)
| 归档时间: |
|
| 查看次数: |
20826 次 |
| 最近记录: |