我创建了一个程序,即使手机被锁定,如果收到消息也会响铃。当电话响铃时,它会显示关闭按钮以停止闹钟,但是我的代码只显示了关闭按钮并快速消失,让我无法选择如何停止闹钟。请帮我这个代码。感谢您的帮助
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.receiverinterface);
unlockScreen();
alertDialogBuilder = new AlertDialog.Builder(
context);
alertDialogBuilder.setTitle("Alarm");
alertDialogBuilder
.setMessage("Stop Alarm")
.setCancelable(false)
.setPositiveButton("Dismiss", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
Ringtone r = EAlarmReceiver.r;
r.stop();
Toast.makeText(context.getApplicationContext(), "Alarm Stopped", Toast.LENGTH_LONG).show();
if(EAlarmReceiver.sms.length() > 10)
{
Intent openInterface = new Intent("proj.receiver.VIEWMESSAGE");
openInterface.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(openInterface);
}
else
{
Intent openInterface = new Intent("proj.receiver.RECEIVERINTERFACE");
openInterface.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(openInterface);
}
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}// end oncreate()
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
finish();
}
//unlock screen
public void unlockScreen() {
//make the activity show even the screen is locked.
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
+ WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
}
答案 0 :(得分:1)
从onPause()中删除finish()
后尝试使用此代码。也发布完整的代码。
编辑: - 正如你所说的删除完成工作,这是你的第二个问题的解决方案。
1)复杂和临时解决方案: - 尝试添加一个布尔变量,你应该在对AlertDialog采取的操作上设置为true,如果在onResume中为true,则完成你的活动。每次你回到你的活动时OnResume都会打电话。
2)但如果我在你的位置,我会按照下面的方法。
创建一个类似于警报Dialog的布局。并将活动主题设置为清单中活动声明中的对话框,它将打开您的活动作为对话框。因此你不需要创建一个AlertDialog来处理动作,你可以添加解除按钮和所有。