モジュラーアプリケーションを作成する

プラグインを備えたブラウザ、テーマを備えたプログラム、アドオンを備えたゲーム、またはAndroid向けのその他のモジュラーアプリケーションを作成しますか? しかし、それを行う方法は? モジュールからテキストを受け取る簡単なアプリケーションの作成方法を説明します。



おそらくここに書かれているのは松葉杖ですが、 dev.android.comgoogleでこのトピックについては何も見つかりませんでした。 読みたくない人は、すぐにコードを解析できます



理論



ADW Launcherテーマテンプレートを見たときに思いついたのは、モジュールに特別なリクエストを送信することです。 つまり、 <intent-filter> <action>



のモジュールで<intent-filter> <action>



、nameパラメーターのタイプの値はmy.app.GET_DATAになり、アプリケーションはstartActivity(startActivityForResult)およびstartIntentSender(startIntentSenderForResult)を使用してリクエストを送信します。 1つのアクティビティに複数の<intent-filter>



タグを設定できることを思い出してください。



練習する



アプリケーション自体のプログラミングから始めましょう。 アプリケーションの基礎は、Hello Worldほど複雑ではないため、モジュールの操作方法のみを説明します。



最も簡単なプレビューオプション:

 // "mod.ul.ed.MODULES" - action    intent-filter' Intent call = new Intent("mod.ul.ed.MODULES"); startActivity(call);
      
      



startActivityを呼び出した後、Androidはユーザーに開くモジュールを尋ね、選択した後(デフォルトのモジュールを割り当てることができます)、それを開きます。



特定のモジュール(およびその特定のアクティビティ)を開くには、次のコードを使用できます。

 Intent call = new Intent("mod.ul.ed.MODULES"); // mod.ule.first -   // mod.ule.first.ActivityMain -  Activity   call.setClassName("mod.ule.first", "mod.ule.first.MainActivity"); startActivity(call);
      
      



モジュールにパラメーターを渡すこともできます。これについては、 Intentクラスの説明を参照してください。



モジュールからデータを取得するには、startIntentSenderForResultを使用することをお勧めします。

 Intent call = new Intent("mod.ul.ed.GET_TEXT"); //    ,         call.setClassName("mod.ule.first", "mod.ule.first.MainActivity"); IntentSender sender = PendingIntent.getActivity(getApplicationContext(), 1, call, 0).getIntentSender(); try { startIntentSenderForResult(sender, 1, call, 0, 0, 0); } catch (SendIntentException e) { }
      
      



startActivityForResultを使用すると、ユーザーは別のウィンドウ(アクティビティ)のちらつきを見ることができます。



モジュールのリストを取得する必要がある場合もあります。 これはPackageManager.queryIntentActivities(Intent intent、int flags)を使用して実装します:

 //   Activity,   action = "mod.ul.ed.MODULES" Intent intent = new Intent("mod.ul.ed.MODULES"); //    Activity List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, 0);
      
      





モジュールの作成を始めましょう。 最初に、目的のアクティビティのAndroidManifest.xmlで、GET_TEXTアクションなどの必要なアクションを追加します。

 <intent-filter> <action android:name="mod.ul.ed.GET_TEXT" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
      
      





アクションを確認した後に何かを返す必要があります。これは次のようにできます。

 //  action if(getIntent().getAction().equals("mod.ul.ed.GET_TEXT")) { //   Intent data = new Intent(); data.putExtra("text", "This is first module"); setResult(RESULT_OK, data); //   finish(); //  Activity return; //    }
      
      







[UPD]テーマを作成するには、 getPackageManager()。GetResourcesForApplication(...)を使用してテーマリソースを取得し、使用することをお勧めします。



まとめ



これは、モジュール式アプリケーションを作成するのがどれほど簡単かです。 最初にリンクが表示されなかった場合:アプリケーションコードと2つのモジュールはgooglecodeで表示できます。 最初に書いたように、これはおそらく松葉杖です。 誰かがよりエレガントで正しい解決策を知っているなら、彼について教えてください。



All Articles