2017-04-03 32 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" /> 
相關問題