【问题标题】:Single Instance of Activity单个活动实例
【发布时间】:2011-10-06 02:31:37
【问题描述】:

我的应用程序有三个活动,比如A -> B-> C

通过startActivityForResult() 从另一个活动调用活动A。活动 B 和 C 的名称也类似。我还必须从通知栏中调用活动 A(如果有某些特定通知)。

现在,如果我当前处于活动 B 或 C,并且单击通知栏并调用活动 A,则应用程序仅转到活动 A,并且通过活动 B 或 C 输入的数据不会保留。

我不想要这样的行为。我希望如果我点击通知,它应该只重定向到当前屏幕。有人可以帮忙吗。 (我提到activity:launchModeSingleTask)。

【问题讨论】:

    标签: java android android-activity notifications


    【解决方案1】:

    使用android:launchMode="singleTask" 可能是最好的方法,因为如果它已经在运行,它不会重新创建活动。只需将其添加到您的 AndroidManifest.xml 中的活动中,您就应该一切就绪。

    <activity
        android:name=".MyActivity"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
     </activity>
    

    这是另一个可能有用的问题:Android singleTask or singleInstance launch mode?

    【讨论】:

    • 不,它不起作用。我尝试了很多,但只提到单个任务,是行不通的
    【解决方案2】:

    您可以使用静态变量来确定其他数据。不过,我不确定您希望从其他活动中访问多少或什么类型的数据。

    写入持久性存储也可能有效,但同样 - 您存储的数据以及存储方式的模糊性使得难以回答。只需在每个 Activity 的 onResumeonSuspend 方法中写入/读取持久存储(或创建超级 Activity 类并将其扩展为 A、B 和 C。

    【讨论】:

    • 这对我也不起作用。很抱歉这么久才回复
    • 不,这不起作用,所以我们改变了我们的应用程序的设计。任何方式都非常感谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多