2017-04-03 118 views
0

我试图在来电时显示联系人姓名和电话号码以及来自本地联系人的示例应用程序,但每个事情都可以正常工作,但直到呼叫完成或终止时才显示我的活动对话框。我想显示这个对话框,如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"/> 

回答

0

你需要在你的Activitycontext定义我的活动。

像下面的代码:

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); 
+0

设置权限我现在尝试,但应用程序停止和对话不显示为'不能被转换为android.app .Activity' – Azak

+0

是的,您不能将应用程序上下文转换为活动。您需要传递当前活动的上下文。 –

0

您有意向通过服务来实现。当呼叫从服务就像连接启动服务并显示对话:

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

和清单

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
相关问题