如何让程序(服务)在启动时自动初始化,无需用户设置或交互?
将此权限添加到您的清单中:
<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,您将无法实例化和显示对话框。我希望对话框显示在用户当前在屏幕上的任何内容上,并显示一个对话框。有没有办法让 Activity 对当前 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>