2

我正在开发一个 phonegap 应用程序,其中包含一些本地组件。
到目前为止,我有本地运行的通知,以确保根本不需要 javascript 和 phonegap。但是,我遇到的问题是,当单击通知时,我想打开应用程序,或者只是将应用程序放在前面。

我该怎么做呢?我尝试在意图中设置主要活动,但每次都会重新启动我的应用程序。

      Intent notificationIntent = new Intent(context, main.app.class);
      notificationIntent.putExtra(NOTIF_RESPOND, runThis);
      notificationIntent.setAction(Intent.ACTION_VIEW);
      notificationIntent = notificationIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
4

1 回答 1

3

实际上在Android中几乎没有“重启应用程序”这样的东西。基本上,应用程序 - 是您所有服务/活动/提供者等的捆绑。它要么正在运行,要么没有。

如果用户启动一个新的活动 - 系统将检查,如果应用程序正在运行 - 它将在应用程序内创建此活动。如果没有 - 将创建新的应用程序实例。

所以我认为您的意思是,如果您为 Main 活动设置意图 - 另一个 Activity 实例正在启动,对吗?

如果是这样 - 请查看以下活动标志,您应该尝试在 Manifest 中设置(或在 PhoneGap 中的任何内容,抱歉)。http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

<activity android:name=".YourActivity"
    android:launchMode="singleTask" 
    ...

这个标志将告诉系统不要为每个需要的类型创建一个新的 Activity,而是重用已经存在的一个。请注意,onNewIntent在这种情况下,您应该正确实施方法来处理这种“重新启动”,而且我不能 100% 确定它是否在 PhoneGap 中实施。

祝你好运

于 2012-09-03T20:26:55.453 回答