我在AlarmManager中显示AlertDialog。 DialogNotification(警告对话框) - 活动,在清单中:
<activity
android:name=".notification.DialogNotification"
android:label="@string/title_activity_dialog_notification"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
</activity>
即使程序没有运行,我希望对话显示,但是当我去应用程序时,在Splash Screen中显示对话框,但我不打电话给他。我怎么解决它?
public class DialogNotification extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("Log", "onCreate DialogNotification");
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.app_icon)
.setTitle(R.string.time_to_call_your_clients)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent notificationIntent = new Intent(DialogNotification.this, SplashActivity.class);
startActivity(notificationIntent);
dialog.cancel();
DialogNotification.this.finish();
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
DialogNotification.this.finish();
}
}).show();
}
}
答案 0 :(得分:0)
我对你的陈述感到有点困惑&#34;我希望即使程序没有运行也要显示对话&#34;因为如果程序没有运行,我不太确定对话应该如何显示。此外,如果不了解您的程序流程,我无法准确找出问题所在。
话虽如此,这是我的猜测。如果您在进入DialogNotification活动时看到此事件,则问题可能是您每次拨打&#34; onCreate&#34;时都要创建新的AlertDialog.Builder
。
如果您想拥有一个AlertDialog
实例,那么您可能需要添加条件语句(if语句)以确保您想要创建新的AlertDialog
。
答案 1 :(得分:0)
我发现了我的问题!我启动服务,启动DialogActivity,方法onStartCommand
是:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//some code
return super.onStartCommand(intent, flags, startId);
}
这不是正确的解决方案!
这是正确的解决方案:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//some code
stopSelf();
return START_NOT_STICKY;
}