3

我制作了一个创建和监听自定义 url 的应用程序。我的问题是应用程序的多个实例。例如,我创建一个 url 并通过短信将其发送给我的朋友。之后,我在我的应用程序中打开该短信(包含 url)。这会创建一个打开此 url 的我的应用程序的新实例。我希望一次只能有一个实例。我将如何实现这一目标。

谢谢,

4

3 回答 3

3

android:launchMode=""您可以在标记中添加属性activity,在清单文件中,并将其设置为以下之一:

  1. 标准:系统总是在目标任务中创建一个新的活动实例,并将意图路由到它。
  2. singleTop:如果 Activity 的实例已经存在于目标任务的顶部,系统会通过调用其onNewIntent()方法将 Intent 路由到该实例,而不是创建 Activity 的新实例。
  3. singleTask:系统在新任务的根目录创建活动并将意图路由到它。但是,如果活动的实例已经存在,系统会通过调用其 onNewIntent() 方法将意图路由到现有实例,而不是创建一个新实例。
  4. singleInstance:与 singleTask 相同,只是系统不会在持有该实例的任务中启动任何其他活动。活动始终是其任务的唯一且唯一的成员。
于 2013-02-25T10:21:41.593 回答
2

在打开 URL的AndroidManifest.xml中设置android:launchMode="singleTop"为您的 Activity 。例如:

<activity android:name="com.abc.MainActivity" android:label="app_name"
          android:launchMode="singleTop">

此外,如果您想捕捉新Intent的内容,请在您的活动代码中覆盖以下方法:

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);   //set new intent as current intent
}
于 2013-02-25T10:20:28.547 回答
0

用于android:launchMode="singleTask"ActivityAndroidManifest.xml. 有关更多信息,请查看有关Activity 的 LaunchMode 的文档。

于 2013-02-25T10:25:39.720 回答