Android - 如何创建一个活动的多个实例?
我想知道是否可以在Android中创建单个Activity的多个实例?Android - 如何创建一个活动的多个实例?
我目前使用下面的代码开始了VoIP测试我自己的门店屏幕:
public void initInCallScreen(String pName, String phoneNumber, int contactID, boolean
callDirection, int lineID){
//starts in callScreen dialog
final Intent myIntent = new Intent(context, CallDialogActivity.class);
myIntent.putExtra("NAME", pName);
myIntent.putExtra("NUMBER", phoneNumber);
myIntent.putExtra("ID", contactID);
myIntent.putExtra("CALLTYPE", callDirection); //True = Incoming, False = Outgoing
myIntent.putExtra("LINEID", lineID);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
这让我开始活动的罚款。
但是,当我第一次调用它时,它只返回到已经创建的Activity,而不是创建一个新的Activity并将其放置在堆栈上。
我希望能够多次创建活动,使我有堆栈上的两个或3个活动,并且用户可以在它们之间,利用主页,后退按钮切换等等......
这是可能,如果是的话,我在做什么错了?
然而,当我把它的第二个它 刚刚返回到创建,而不是创建一个新的 活动,并把它的堆栈上的活动已经 。
您可能已更改清单以添加一个干扰目标的android:launchMode
属性。默认情况下,启动一个活动将启动一个新的实例。
另外:
- 摆脱
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
,因为你不希望基于你在这里 - 由于
context
写了什么新的任务可能是一个Context
,我不知道为什么你会通过所有的ContextWrapper
/getBaseContext()
东西
对不起,将旧代码移到新项目中,谢谢指出上下文。当我删除myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);尝试启动Activity时出现以下错误:AndroidRuntimeException:从Activity上下文外调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志。这真的是你想要的吗? 所以我不确定,但我想我需要FLAG_ACTIVITY_NEW_TASK标志设置?此外,我的清单中的任何地方都没有launchMode设置。 – 2010-07-01 13:17:57
@Donal Rafferty:你从哪里启动? – CommonsWare 2010-07-01 13:32:20
来自同一申请中的服务。 – 2010-07-01 13:34:54
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
| Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
它正在为我工作 – 2014-12-01 13:42:35
我没有做适当的研究,但鉴于你的描述,我是顾认为'CallDialogActivity'是'单顶'启动模式,在这种情况下,我认为你可以做的不多。如果没有明确指定,它会默认为你请求的行为... – 2010-07-01 12:22:09
有没有办法检查它是否是单顶? – 2010-07-01 16:18:45
@DonalRafferty你能解决这个问题..? – 2013-04-02 09:54:11