プログラム (サービス) をブート時に自動的に初期化し、ユーザー設定や操作を必要としないようにするにはどうすればよいですか?
この権限をマニフェストに追加します。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
次に、レシーバーをマニフェストに追加します。
<receiver android:name="your.package.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
Java コードでレシーバーを作成します。
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// start the service from here
}
}
アクティビティを使用しないと、ダイアログをインスタンス化して表示できないという印象を受けました。ユーザーが現在画面に表示しているものにダイアログを重ねて表示し、ダイアログを表示したいと思います。アクティビティを現在のアクティビティに対して完全に透明にする方法はありますか、またはサービスからダイアログを表示する方法はありますか?
はい、本当です。ダイアログをポップアップするアクティビティが必要です。透明なアクティビティを作成するには、次のスタイルをres/values/styles.xml
ファイルに追加します (ない場合は作成します)。完全なファイルは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">#00000000</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
</resources>
次に、スタイルをアクティビティに適用します。次に例を示します。
<activity android:name=".TransparentActivity" android:theme="@style/Theme.Transparent">
...
</activity>