私のアプリケーションには次のシナリオがあります。アプリケーションにUIはありません。代わりに、起動時に開始され、継続的に実行されるサービスがあります。
メインアクティビティなしでマニフェストファイルを構成するにはどうすればよいですか?アクティビティなしでアプリを起動できますか?アプリを起動すると、サービスが開始されます。これは可能ですか?
サービスを開始するために半透明のアクティビティを作成したくありません。
あなたは半透明のアクティビティを使用したくないと言いましたが、これがこれを行う最良の方法のようです。
Theme.Translucent.NoTitleBar
に設定します。setContentView()
を呼び出さないでください。onCreate()
で、startService()
を使用してサービスを開始します。finish()
でアクティビティを終了します。つまり、アクティビティを表示する必要はありません。サービスが実行されていることを確認してから終了するだけで、希望どおりに聞こえます。
少なくとも Toast通知 を表示することを強くお勧めします。これは、サービスを起動していること、または既に実行中であることをユーザーに示すことです。あなたがそれを押すと何もしないように見えるランチャーアイコンを持つことは非常に悪いユーザーエクスペリエンスです。
はい、アプリケーションの起動時にBroadcastReceiver
を呼び出すService
を作成するだけで、それを行うことができます。これが私からの完全な答えです。
Android-起動時にサービスを開始
アプリケーション用のアイコン/ランチャーが必要ない場合は、それを行うこともできますが、アクティビティを作成しないでください
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
Service
を通常どおりに宣言するだけです。
アクティビティやサービスのないアプリを作成する理由は、起動する必要のないウィジェットアプリを作成することです。
プロジェクトを開始したら、アクティビティを作成しないでください。プロジェクトを作成したら、実行をクリックします。 Android studioはNo default activity found
と言います。
をクリックします構成の編集および起動オプション部分で起動値を設定しますなしに。次に、[OK]をクリックしてアプリを実行します。 アプリはアプリメニューに表示されません。
Android Studioバージョン2.3
いくつかの簡単な手順に従って、メインアクティビティなしでサービスを作成できます。このアプリをAndroid Studioからインストールし、通常のアプリと同様にデバッグできます。
最初に、アクティビティなしでAndroid Studioでプロジェクトを作成します。次に、Serviceクラスを作成し、AndroidManifest.xmlにサービスを追加します
<application Android:allowBackup="true"
Android:label="@string/app_name"
Android:icon="@mipmap/ic_launcher"
Android:roundIcon="@mipmap/ic_launcher_round"
Android:supportsRtl="true"
Android:theme="@style/AppTheme">
<service Android:name="com.whatever.myservice.MyService">
<intent-filter>
<action Android:name="com.whatever.myservice.MyService" />
</intent-filter>
</service>
</application>
ここで、「実行」ボタン(緑色の矢印)の隣のドロップダウンで「構成の編集」に進み、「起動オプション」内で「なし」を選択します。これにより、Android Studioがメインアクティビティがないという文句を言うことなくサービスをインストールできます。
インストールすると、サービスは実行されなくなりますが、このadb Shellコマンドで開始できます...
am startservice -n com.whatever.myservice/.MyService
で実行されていることを確認できます...
ps | grep whatever
まだ試していませんが、Android Studioでサービスを自動的に開始することもできます。これは、「構成の編集」メニューで行います。