1

テキストデータを操作する単純な Android アプリケーションがあります。アプリは 2 つの方法で呼び出されます。1) ランチャーからアプリを起動してテキスト データを手動で入力するか、2) SEND インテントを使用してテキストを共有します。

ランチャーから起動すると、すべてが期待どおりに動作します。共有機能から起動し、その後アプリ スイッチャー/最近のアプリ ボタンを使用すると、アプリケーションが「Android システム」として表示され、それから切り替えると消えます。他のアプリと同じようにそのリストに表示され、切り替えられても持続するようにしたいと思います。問題は、異なるインテントから起動したときにアプリの動作が異なるのはなぜですか? インテント、アクティビティ、およびタスクについて理解していない基本的なことがあると確信していますが、どこを見ればよいかわかりません。

マニフェストの関連セクションは次のとおりです。

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.stub2.Main"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
          <action android:name="android.intent.action.SEND" />
          <category android:name="android.intent.category.DEFAULT" />
          <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
</application>
4

1 に答える 1

1

たとえば、ユーザーはあなたのアクティビティMainACTION_SENDいくつかのテキストとともに呼び出しますabc。別の機会に、彼はMainテキストで電話をかけますzzz。次にMain、最近のリストに の 2 つのインスタンスがあり、意図が異なります。


編集

ACTION_SENDのような「アダプタ」アクティビティに登録してAdapterActivityから、テキストを に転送できますMain。このようにしてMain、ユーザーがランチャーから起動した場合、アプリ (アクティビティ) は最近のアプリにのみ表示されます。

<activity
    android:name="AdapterActivity"
    android:excludeFromRecents="true" />

ここにはさらにアクティビティ タグがあります。

于 2013-02-07T03:17:08.387 に答える