当前位置: 首页 > 面试题库 >

使用意图在两个Android应用之间传递数据

方建明
2023-03-14
问题内容

我有两个单独的android应用程序,即AppA和AppB。我试图让AppA启动AppB(这是一个游戏应用程序)。用户玩完游戏(AppB)后,它将把游戏记录发送回AppA。

因此,AppA可以正确启动AppB,但是当用户玩完游戏(AppB)后,AppB在将数据发送回AppA时崩溃,并且出现了以下错误:

流程:com.joy.AppB,PID:20265
android.content.ActivityNotFoundException:无法找到显式的活动类{com.joy.AppA /
com.joy.AppA.views.activities.StartGameActivity};您是否在AndroidManifest.xml中声明了此活动?

AppA包名称:com.joy.AppA
活动类名称:com.joy.AppA.views.activities.StartGameActivity

AppB包名称:com.joy.AppB
活动类名称:com.joy.AppB.MainActivity

到目前为止,这是我所做的:

AppA的StartGameActivity:

//To launch AppB game
Intent launchGameIntent = getPackageManager().getLaunchIntentForPackage("com.joy.AppB");
startActivity(launchGameIntent);

//To retrieve game scores from AppB game
Intent intent = getIntent();
String[] gameRecords_array = intent.getStringArrayExtra("gameRecord");

AppA的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.joy.AppA">
.
.
.
<activity
        android:name="com.joy.AppA.views.activities.StartGameActivity"
        android:label="Start Game">
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
        </intent-filter>
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".views.activities.DashboardActivity" />
    </activity>

AppB的MainActivity:

Intent i = new Intent();
i.setComponent(new ComponentName("com.joy.AppA","com.joy.AppA.views.activities.StartGameActivity"));
i.setAction(Intent.ACTION_SEND);
i.putExtra("gameRecord", gameRecord_array);
startActivity(i);

AppB的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.joy.AppB" >

<supports-screens android:resizeable="true" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:icon="@drawable/app_icon"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
.
.
.

在此先感谢您的帮助!


问题答案:

试试这个:

AppA的AndroidManifest.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.joy.AppA">
    .
    .
    .
    <activity
            android:name="com.joy.AppA.views.activities.StartGameActivity"
            android:label="Start Game">

            <intent-filter>
                <action android:name="com.joy.AppA.views.activities.LAUNCH_IT" />
            <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".views.activities.DashboardActivity" />

        </activity>

然后要将数据从应用b发送到应用a活动,请执行以下操作:

Intent i = new Intent();
i.setAction("com.joy.AppA.views.activities.LAUNCH_IT");
i.putExtra("gameRecord", gameRecord_array);
startActivity(i);


 类似资料:
  • 我正在尝试在活动之间传递数据 我使用intents在常规活动之间传递数据 请考虑以下代码:: 假设我将来自名为的其他活动的数据作为意图发送到 现在,如何接收中的数据,这些数据是从获得的,然后再将其传递到中 象形表示为:: {EDIT}--如果根据答案可以这样做--不明确,因为AndroidTabRestaurantDescearchListView是一个选项卡活动

  • 我试图在我的android应用程序中的两个活动之间传递数据,我想使用HashMap(我不想使用Intent)。以下是我的代码: DataHolder.java 在第一个活动中设置值 在其他活动中获得价值 当我用它在activity1到activity2之间传递数据时,它会起作用,但在那之后,当在activity2到activity3之间传递数据时,返回null,因此强制转换为(整数)会导致错误。在

  • 问题内容: 在应用程序之间传递简单数据(例如String)的最佳方法是什么?字符串是发送方应用中已知的字段,接收方应用需要此字段。 我曾考虑将其存储在MODE_WORLD_READABLE SharedPreferences中,但我不一定知道包名称(该名称将存在于库中),该值可以由各种应用程序设置,因此很难查找。 我当时想两个应用程序都包含BroadcastReceivers。打开接收方应用程序后

  • 问题内容: 我有两个 -我有和同赛格瑞“模式” -我有与(回FirstVC): 我创建的委托为: 下一个: 我的函数,在此函数中,我的委托用作: FirstVC: 请帮助我解决这个问题。 问题答案: 1)您需要将委托设置为prepareForSegue: 更新: 2)设为可选

  • 我对如何在两个模型之间传递数据有疑问。 所以我想把状态从单元传递到主模型,并在那里进行反应。例如发送请求。

  • 我正在使用jquerymobile/jquery/js开发网页。我想将数据从一个页面传递到另一个页面。 使用jquerymobile中的多页模板,我可以实现这一点,但可以帮助我使用单页模板。请我不想使用全局变量或cookie或本地存储或使用url。试图通过使用Jquery.data但无法实现此目的。请发布一个示例。 我有两页。在第二页连接“pagebeforeshow”事件时,我没有得到b1按钮对