在我的应用程序中,我有两个 Activite,A 和 B。A 是根/启动器 Activity,B 是从推送通知启动的。如果用户在另一个应用程序中,并单击我的推送通知,则将启动 Activity B。当我在此 Activity 上调用 finish() 时,我希望用户在单击通知之前返回到他们所在的应用程序。相反,它们被带到 Activity A,即根 Activity。
有没有办法从通知启动 Activity,然后完成 Activity 并将用户返回到他们之前所在的应用程序?
在我的应用程序中,我有两个 Activite,A 和 B。A 是根/启动器 Activity,B 是从推送通知启动的。如果用户在另一个应用程序中,并单击我的推送通知,则将启动 Activity B。当我在此 Activity 上调用 finish() 时,我希望用户在单击通知之前返回到他们所在的应用程序。相反,它们被带到 Activity A,即根 Activity。
有没有办法从通知启动 Activity,然后完成 Activity 并将用户返回到他们之前所在的应用程序?
下面的代码没问题,我测试了一下。在 AndroidManifest.xml
<activity android:name=".A" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".B" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name2" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
从第三个应用程序,调用:
Intent intent = new Intent();
intent.setClassName("your.app.packge", "your.app.packge.B");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
你可以在你的项目中尝试。
您可以使用特定的额外内容加载通知的 Intent,您可以使用它来更改活动的控制流,这也可以与当前的活动堆栈一起使用以确保方向。