5

これを機能させるのに問題があります。アイデアの概要を簡単に説明します。

まず、この背後にあるロジックを変更することはできません。これは顧客からの特定の要件でした。AnyCut などのツールを使用すると回避できることはわかっていますが、それは実際には問題ではありません。

私の顧客はアプリのスイートを提供しています。そのアイデアは、スイートに属するすべてのアプリケーションが「ダッシュボード アプリ」から起動されるため、すべてのアプリ アイコンではなくメイン ランチャーにダッシュボード アプリのみを表示するというものです。

アイデアを解決するために 2 つのアプリを使用してみましょう。ダッシュボード アプリ (A) と受信アプリ (B)。

アプリ B にインテント フィルターを設定して (私が思うに)、アプリ A に移動し、アプリ B のアイコンをクリックするたびに、アプリが起動されるか、または手放した場所から開始されるようにしたいと考えています (前面に表示されます)。

これは可能ですか?もしそうなら、どうすればいいですか?以下を使用して、アプリで1つのアクティビティを具体的に起動することで、なんとか起動できました。

Intent i = new Intent();
i.setClassName("PACKAGE_NAME","SPECIFIC_CLASS");
startActivity(i);

しかし、それは常に同じ場所でアプリ B を開始するため、私が望む動作ではありません。

よろしくお願いします、ステファノ

編集:いくつかの新しい情報を追加しました。私はDDMSを見ていました。

メインのAndroidランチャーからアプリケーションを最初から起動すると、ホームボタンを押したままにし、アプリを前面に表示するだけの場合とまったく同じです。今、この意図。

INFO/ActivityManager(1292): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.package/.uiPackage.Activity}

これがAnyCutのやり方です

Intent { act=android.intent.action.VIEW flg=0x10000000 cmp=com.example.package/.uiPackage.Activity bnds=[125,242][235,360]}

まったく同じ意図を作成する方法はありますか? Intent API でそのフラグを見つけることさえできません。

4

3 に答える 3

7

思いついた、これが私がやった方法です。

Intent i = new Intent();
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setAction("android.intent.action.VIEW");
i.setComponent(ComponentName.unflattenFromString("com.example.package/com.example.package.activityName"));
startActivity(i);
于 2011-02-04T20:55:51.500 に答える
0

アクティビティを切り替えると、アンドロイドのデフォルトのアクションは、ユーザーが最後に残した状態でアクティビティを一時停止または保持することだと思います。アクティビティを切り替えるときに状態が保存されないようにする方法があることは知っていますが、頭の中で思い出すことはできません。

于 2011-02-07T19:49:52.193 に答える
0

あなたが見たいと思っている結果に従っているかどうかはよくわかりませんが、次のようにすると、ダッシュボードからアプリが起動され、アクティビティ スタックからダッシュボードが削除され、選択したアプリが実行されたままになります。

Intent i = new Intent();
i.setClassName("PACKAGE_NAME","SPECIFIC_CLASS");
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

これにより、他のアプリを起動しているかのようにアプリが起動するはずです。

これが探しているものでない場合は、ロジックに関する情報を追加してください。

于 2011-02-04T01:18:45.430 に答える