如何在应用关闭时弹出对话框活动

时间:2017-04-03 13:36:41

标签: android service android-runonuithread

我尝试制作示例应用程序,在来电时显示来自我的本地联系人的联系人姓名和号码,每件事情都正常但我的活动对话框在呼叫结束或终止之前没有出现。我希望在调用开始时显示此对话框,如TrueCaller应用程序弹出窗口或查找任何结果,找到任何结果时我的对话框正确启动但在调用完成之前我无法显示它。我无法在UI上运行它将我的逻辑运行在非活动类中。有帮助吗?

以下代码显示了我如何开始我的活动

Intent intent = new Intent(ctx, MyDialog.class);
intent.putExtra(MyDialog.NUMBER, number);
intent.putExtra(MyDialog.CONTACT, name);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(intent);

我在mainfaist档案

中定义了我的活动
<activity
        android:name=".ui.MyDialog"
        android:excludeFromRecents="true"
        android:screenOrientation="portrait"
        android:theme="@style/dialog_activity_style"/>

2 个答案:

答案 0 :(得分:0)

您需要在context中投射Activity

如下代码:

Intent intent = new Intent(ctx, MyDialog.class);
intent.putExtra(MyDialog.NUMBER, number);
intent.putExtra(MyDialog.CONTACT, name);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//change below line in your code
((Activity)ctx).startActivity(intent);

答案 1 :(得分:0)

您必须通过意向服务来实施。当呼叫连接时,启动服务并显示来自以下服务的对话:

AlertDialog dialog = builder.create();
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
dialog.show();

并在清单

中设置权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />