1

私から他のアクティビティを開始する際に問題が発生しています。パッケージマネージャーを使用して特定のアクティビティを開始するランチャーアプリが非常に多いため、これは他の場所で行われなければならないことを知っています...

パッケージマネージャーから開始したいアクティビティ名を取得できますが、これを解析してインテントに変換するにはどうすればよいですか? クラスにアクセスできないことを念頭に置いて...また、その特定のアクティビティを開始し、パッケージからMAINインテントを起動したくない...

きっとどこかで誰かがやっているに違いない… 活動のポイントのようなものですよね?

4

2 に答える 2

3

AndroidManifest.xml に以下があると仮定します

    <!-- The askUser dialog activity -->
    <activity android:theme="@android:style/Theme.Dialog"
              android:name="my.app.AskUserActivity" 
              android:excludeFromRecents="true"
              android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="my.app.intents.AskUserConfirmConnect"/>
            <category android:name="android.intent.category.DEFAULT" />                
        </intent-filter>
    </activity>     

次に、このアクティビティを次のように名前で呼び出すことができます。

Intent dlgIntent = null;

dlgIntent = new Intent("my.app.intents.AskUserConfirmConnect");
dlgIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
dlgIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
context.startActivity(dlgIntent);
于 2012-01-10T15:49:48.673 に答える
1

Intentで setClassName(String, String)を使用して、他のクラスを必要としないようにすることができます。

于 2012-01-10T15:47:07.087 に答える