この問題に関するすべての投稿を AlertDialog で確認しましたが、役に立ちませんでした。誰かがここで何かおかしなことを見ることができますか? DialogFragment を試しましたが、PhoneStateListener からこれを行っており、他に何も拡張できません。null トークンを持っていないので、getBaseContext は機能しています。私は信じている。
private void lookupCallerId(int cstate)
{
if(prefs.getIsDeactivated())
return;
if(lookupInProgress)
{
return;
}
//add popup box here for lookup question?
PMLog.v(LOGTAG, "lookupCallerId() Start pop up box.");
Context context = service.getBaseContext();
if(cstate == TelephonyManager.CALL_STATE_RINGING) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
PMLog.v(LOGTAG, "lookupCallerId() ALERT BUILDER.");
builder.setTitle("Lookup this #?");
builder.setCancelable(true);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String strPhoneNumber = PhoneNumberProcessor.formattedPhoneNumber(prefs.getLastCallerNumber(), service); {
if(strPhoneNumber.length() == 0)
return;
}
PMLog.v(LOGTAG, "lookupCallerId() Starting CNM lookup thread");
Thread thread = new Thread(null, doBackgroundThreadProcessing, "LookupBackgroundThread");
thread.start();
}
}
);
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
onNo();
return;
}
});
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
onNo();
return;
}
});
builder.create().show();
}
}