在活动A中,可以使用Twitter登录.当用户登录时,我想启动没有历史记录的活动B.这是我的所有东西:
首先是Manifest.xml,所以我将launchMode = singleTask设置为Twitter API请求:
<activity androID:name=".A_Activity" androID:label="@string/app_name" androID:launchMode="singleTask" androID:theme="@androID:style/theme.Black.NoTitlebar"> <intent-filter> <action androID:name="androID.intent.action.MAIN" /> <category androID:name="androID.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action androID:name="androID.intent.action.VIEW" /> <category androID:name="androID.intent.category.DEFAulT" /> <category androID:name="androID.intent.category.broWSABLE" /> <data androID:scheme="my_twitter_scheme" /> </intent-filter></activity>
这是我如何开始活动B:
Intent i = new Intent(A.this,B.class);i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_top); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);
注意:我通过broadcastReceiver实例调用活动B.
当我登录时,我的接收器正常启动活动B,但不幸的是,当我按下后退按钮时,应用程序返回活动A.
我想这是关于launchMode的,正如我所说,Twitter需要这个选项.我究竟做错了什么?任何帮助或建议(可能关于Twitter)都会很棒.
解决方法 我确信应该有更有效的方法来解决这个问题,但我建议一些不同的东西.只需在启动活动后调用finish()方法,因此活动A将完成,当用户按下活动B应用程序中的按钮时,您希望返回主屏幕.
同时检查两次对话以避免任何异常,即检查此question(以及答案)以了解我的意思.
总结以上是内存溢出为你收集整理的Android:如何在使用SingleTask时清除意图堆栈全部内容,希望文章能够帮你解决Android:如何在使用SingleTask时清除意图堆栈所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)