[英]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
顯示AlertDialog
,這是不允許的。 您無法從BroadcastReceiver
顯示AlertDialog
。 只有活動可以顯示對話框。
您應該做其他事情,使BroadcastReceiver
啟動時一樣在啟動時啟動,並啟動一個活動以顯示對話框。
將以下活動添加到您的應用程序
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();
}
}
另外,不要忘記將新活動添加到清單中。
然后,您只需要在接收器中開始活動
@Override
public void onReceive(Context context, Intent intent)
{
context.startService(new Intent(context, MainService.class));
context.startActivity(new Intent(context, AlertActivity.class));
}
如果此答案有幫助,請單擊“喜歡”按鈕下的復選標記以指示這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.