[英]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.