我想知道是否可以在Android中创建单个Activity的多个实例?
我目前使用以下代码启动自己的inCall屏幕进行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并将其放在堆栈上。
我希望能够多次创建活动,以便我在堆栈上有两个或三个活动,用户可以使用Home,Back按钮等在它们之间切换...
这是可能的,如果是的话,我做错了什么?
答案 0 :(得分:7)
然而,当我打电话给它一秒钟时 只是返回活动 创造而不是创造新的 活动并将其放在堆栈上。
您可能更改了清单,以添加干扰您目标的android:launchMode
属性。默认情况下,启动活动会启动一个新实例。
此外:
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
,因为你不想根据你在这里写的内容完成新任务context
可能是Context
,我不知道为什么要查看所有ContextWrapper
/ getBaseContext()
内容答案 1 :(得分:3)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
| Intent.FLAG_ACTIVITY_MULTIPLE_TASK);