簡體   English   中英

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顯示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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM