考虑代码:
public void callPerson(String phonenumber){
String tel = "tel:" + phonenumber;
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(tel));
startActivity(intent);
// onPause();
// Toast.makeText(getActivity(), "this is a test toast", Toast.LENGTH_LONG).show();
}
如您所料,在运行该代码时,当前活动会在后续活动(电话拨号器)运行时自行暂停。当电话结束时,原来的活动会重新弹出。
当我希望引入一个在通话后弹出的“评级”对话框时,我的问题就出现了。
我会在哪里插入这样的代码?好吧,如果我们直接在行之后插入它,“startActivity(intent);” 这与取消注释最后一行(吐司)相同(?)。如果这样做,您将看到代码在“startActivity(intent);”行之后继续运行 -- 通话过程中出现吐司。
那么我们如何防止代码继续运行呢?
您可以看到我也尝试插入“onPause()”,但这似乎也不起作用。
我了解 Android 生命周期,所以我能想到的唯一方法是将新的对话框代码放入 onResume()... 但我还必须执行以下操作:
@Override
public void onResume(){
if (we are currently returning from phone call) {
//Dialog code here
}
}
但似乎必须有更好的方法。谢谢你的帮助!