簡體   English   中英

Android-如何在服務類中顯示警報對話框生成器

[英]Android -How to display alert dialog builder in service class

我已經在Android中實現了一個服務類(擴展Service)。在我的服務類中,我必須顯示一個Alert對話框,我該怎么辦?

這是我的代碼

public class BackgroundService extends Service {

@Override
public void onCreate() {
    super.onCreate();
    //Toast.makeText(this, "Service created...", Toast.LENGTH_LONG).show();
    Log.i(tag, "Service created...");

}

@Override
public int  onStartCommand(Intent intent, int flags, int startId) {
    Log.i("LocalService", "Received start id " + startId + ": " + intent);
   AlertDialog.Builder builder = new AlertDialog.Builder(getApplication());
                                builder.setTitle("Test dialog");
                                builder.setMessage("Content");
                                builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int whichButton) {
                                        //Do something
                                        dialog.dismiss();
                                    }
                                });
                                builder.setNegativeButton("Close", new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int whichButton) {
                                        dialog.dismiss();
                                    }
                                });
                                AlertDialog alert = builder.create();
                                alert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
                                alert.show();

    return START_STICKY;

}
@Override
public void onDestroy() {
    super.onDestroy();
    t.cancel();
   // Toast.makeText(this, "Service destroyed...", Toast.LENGTH_LONG).show();
}

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

在上面的代碼中,我已經實現了,但是我不知道如何在服務類中實現警報對話框

您將必須將對話框配置為“系統警報”,因為只能使用service顯示“系統警報”。

將其添加到清單文件中:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

編輯:

為對話框創建樣式:

<style name="dialog" parent="Theme.AppCompat.Dialog">
    <item name="android:windowNoTitle">true</item>
</style>

在創建構建器時添加它:

AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(getApplication(), R.style.dialog));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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