Как заставить программу (Сервис) автоматически инициализироваться при загрузке без каких-либо пользовательских настроек или взаимодействия?
Добавьте это разрешение в свой манифест:
<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
}
}
Я былпод впечатлением, что вы не можете создавать и отображать диалоги без использования Activity.Мне бы хотелось, чтобы диалоги появлялись поверх всего, что пользователь сейчас имеет на экране, и отображали диалог.Есть ли способ сделать деятельность полностью прозрачной для текущей деятельности или есть способ отображения диалогов из службы?
Да, это правда.Вы должны иметь активность, которая появляется в диалоговом окне.Чтобы создать прозрачное действие, добавьте следующий стиль в файл 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>