启动新活动,但具有与前一个相同的类名

时间:2012-11-08 08:40:18

标签: android android-activity

我一直在努力寻找以下问题的解决方案,但没有成功: 我有一个活动类,显示需要记录的网页(演示文稿)(用户输入的内容,持续时间等)。在某些页面上有按钮可以打开新的演示文稿。 调用活动 - CLMWebView.class:

Intent intent = new Intent(this, CLMWebView.class);
this.startActivity(intent);

在这些代码行之间是一些intent.putExtra,我相信这与此无关。 如您所见,我正在尝试使用与调用活动相同的类启动新活动。然而,没有任何反应。有什么想法吗?

编辑: CLMWebView.class的Android清单

<activity android:name="com.msoft.views.CLMWebView"
    android:configChanges="orientation|keyboard" 
    android:icon="@drawable/svicon" 
    android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.PICK"/>
            <action android:name="android.intent.action.CHOOSER" />
            <action android:name="android.intent.action.WEB_SEARCH" />
        </intent-filter>
</activity>

1 个答案:

答案 0 :(得分:1)

singleTop活动,可见,并且在同一任务中不会重新创建。

引用官方文档:

  

同样,“singleTop”活动的新实例也可能是   创建用于处理新意图。但是,如果目标任务已经存在   在其堆栈顶部有一个现有的活动实例   instance将接收新的intent(在onNewIntent()调用中);一个新的   实例未创建。在其他情况下 - 例如,如果是   “singleTop”活动的现有实例在目标任务中,   但不是在堆栈顶部,或者它位于堆栈的顶部,但是   不在目标任务中 - 将创建并推送新实例   堆栈。

更好的选择是将功能放在片段中,并且每次都将新片段添加到后台。