在我的应用中,我为用户提供了使用ACTION_CALL呼叫某人的选项。通话结束后,用户将返回到他们停止的应用程序,但会出现启动画面。我不希望此时出现这个启动画面。
当我打开联系人列表并允许用户选择联系人时,会发生同样的事情,在选择联系人后,活动将返回到我的应用程序,并且启动屏幕再次显示无限的时间,这使得它很烦人。
如何防止启动画面出现在主要活动之外的任何其他时间?
非常感谢所有的帮助和想法。提前谢谢。
编辑:
private void openDeviceContactsForSelection()
{
//Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
// Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
Intent intent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts")); //ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
intent.setType(Phone.CONTENT_TYPE);
startActivityForResult(intent, 1);
}
@SuppressLint("InlinedApi")
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data)
{
//TODO
if(resultCode != Activity.RESULT_OK)
return;
String cName = "";
String cNumber = "";
Uri contactData = data.getData();
String displayColumnName;
if(android.os.Build.VERSION.SDK_INT < 14)
displayColumnName = "display_name";
else
displayColumnName = Profile.DISPLAY_NAME_PRIMARY;
String[] projection = {displayColumnName, Phone.NUMBER};
Cursor c = getContentResolver().query(contactData, projection, null, null, null);
if (c.moveToFirst())
{
cName = c.getString(c.getColumnIndex(displayColumnName));
cNumber = c.getString(c.getColumnIndex(Phone.NUMBER));
}
saveNumber(cName, cNumber);
loadList(getSelectedNumberTypeAsEnum());
}
答案 0 :(得分:0)
这里的问题是,当呼叫开始时,您的应用程序将移至后台。当应用程序返回时,将调用onResume()函数。您需要在呼叫开始时保存状态,并在应用再次启动时重新加载状态。我知道这样做的最简单方法是使用bundles。