gpt4 book ai didi

安卓 : Create a single task with multiple applications' activities (Lauchmode issue)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:05 24 4
gpt4 key购买 nike

我不知道如何解决这个 Android 问题。简而言之,我的 2 个应用程序之间的流程如下:

  1. 应用程序 A 绑定(bind)到市场应用程序 (AIDL) 中的服务
  2. 注册 BroadcastReceiver 并调用返回 pendingIntent 的服务方法。
  3. 启动 PendingIntent(包含 BillingActivity 实例)。
  4. 使用“startActivityForResult()”启动 PaymentActivity。
  5. 做一些事情,终止 (finish() )。
  6. onActivitiyResult() 方法中,发送广播并终止。
  7. 获取广播信息

Flow between my 2 applications

问题:

我想创建一个包含以下组件的任务:

  • Top1Activity(应用程序 A)
  • BillingActivity(市场应用)
  • PaymentActivity(市场应用)

foreground and background tasks for Android

我试图改变 BillingActivity + PaymentActivity “launchMode”:

singleInstance

为他们创建了一个新任务。当按下返回按钮(或调用 finish() 方法)时,用户将按预期重定向到上一个 Activity 。问题:“StartActivityForResult”不能在多个任务之间使用(立即调用 onActivityResult)。

SingleTask

在 BillingActivity 中按下返回按钮(或调用 finish() 方法)时,用户被重定向到 Top2Activity(在后台任务中)。

我花了超过 48 小时来解决它。我将不胜感激你的帮助。如果需要,我可以发布代码。

谢谢

------------ 编辑 2015-02-02

按照 David 的建议,我删除了所有特殊启动模式:

TOP2Activity(背景):

<activity
android:name=".activities.MainActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/title_activity_main"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan" >
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />

<intent-filter>
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data android:scheme="xxx" />
<data android:host="xxx" />
</intent-filter>
</activity>

我的 Top1Activity(前景):

<activity
android:name="activities.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

BillingActivity(前台):

<activity
android:name=".activities.BillingActivity"
android:configChanges="orientation|keyboardHidden"
android:excludeFromRecents="true"
android:label="@string/title_activity_billing"

android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>

支付 Activity :

<activity
android:name=".activities.PaymentActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/title_activity_payment"
android:screenOrientation="portrait"

android:windowSoftInputMode="stateHidden" >
</activity>

AIDL 服务返回 pendingIntent:

Intent intent = new Intent();
intent.setClass(InBillingService.this, jp.xxx.activities.BillingActivity.class);
intent.putExtra(Consts.PENDING_INTENT_INFO, result);
intent.putExtra(Consts.RESULT_KEY, nextSession);


PendingIntent pendingIntent;
pendingIntent = PendingIntent.getActivity(InBillingService.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

bundle.putParcelable(Consts.PENDING_INTENT, pendingIntent);

当从 BillingActivity(或 PaymentActivity)按下后退按钮时,我仍然被重定向到 Top2Activity...

不知道?谢谢

最佳答案

添加android:taskAffinity=""<activity> defninitions for both计费 Activity and PaymentActivity`.

关于安卓 : Create a single task with multiple applications' activities (Lauchmode issue),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28229813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com