android broadcastreceiver 开机自动启动
android broadcastreceiver auto start on boot up
我的 AndroidManifest.xml
包含:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
和
<receiver android:name=".MyBroadcastReceiver" android:enabled="true" android:exported="false"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
和MyBroadcastReceiver
class MyBroadcastreceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
context.startService(new Intent(context, MainService.class));
//Toast.makeText(context, " O ", Toast.LENGTH_SHORT).show();
new AlertDialog.Builder(context)
.setTitle("OK")
.setMessage("OK")
.setPositiveButton("ㅇㅇ", null)
.setCancelable(false)
.show();
}
}
但是,
重启后我看不到 AlertDialog。
我也启动过很多次...
如何让 broadcastreceiver 在启动后自动启动?
广播接收器无法显示对话。改为启动 activity。
问题是您试图从 BroadcastReceiver
显示 AlertDialog
,这是不允许的。您不能从 BroadcastReceiver
显示 AlertDialog
。只有活动可以显示对话框。
你应该做点别的,让 BroadcastReceiver
像你一样在启动时启动并启动 activity 来显示对话框。
将以下 Activity 添加到您的应用程序中
public class AlertActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new AlertDialog.Builder(this)
.setTitle("OK")
.setMessage("OK")
.setPositiveButton("ㅇㅇ", null)
.setCancelable(false)
.show();
}
}
另外不要忘记将新的 activity 添加到您的清单中。
那么你只需要在你的接收器中启动activity
@Override
public void onReceive(Context context, Intent intent)
{
context.startService(new Intent(context, MainService.class));
context.startActivity(new Intent(context, AlertActivity.class));
}
如果此回答对您有帮助,请点击“赞”按钮下方的复选标记。
我的 AndroidManifest.xml
包含:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
和
<receiver android:name=".MyBroadcastReceiver" android:enabled="true" android:exported="false"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
和MyBroadcastReceiver
class MyBroadcastreceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
context.startService(new Intent(context, MainService.class));
//Toast.makeText(context, " O ", Toast.LENGTH_SHORT).show();
new AlertDialog.Builder(context)
.setTitle("OK")
.setMessage("OK")
.setPositiveButton("ㅇㅇ", null)
.setCancelable(false)
.show();
}
}
但是,
重启后我看不到 AlertDialog。
我也启动过很多次...
如何让 broadcastreceiver 在启动后自动启动?
广播接收器无法显示对话。改为启动 activity。
问题是您试图从 BroadcastReceiver
显示 AlertDialog
,这是不允许的。您不能从 BroadcastReceiver
显示 AlertDialog
。只有活动可以显示对话框。
你应该做点别的,让 BroadcastReceiver
像你一样在启动时启动并启动 activity 来显示对话框。
将以下 Activity 添加到您的应用程序中
public class AlertActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new AlertDialog.Builder(this)
.setTitle("OK")
.setMessage("OK")
.setPositiveButton("ㅇㅇ", null)
.setCancelable(false)
.show();
}
}
另外不要忘记将新的 activity 添加到您的清单中。
那么你只需要在你的接收器中启动activity
@Override
public void onReceive(Context context, Intent intent)
{
context.startService(new Intent(context, MainService.class));
context.startActivity(new Intent(context, AlertActivity.class));
}
如果此回答对您有帮助,请点击“赞”按钮下方的复选标记。