0

在我的应用程序中,我为用户提供了使用 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());
}
4

1 回答 1

0

这里的问题是,当呼叫开始时,您的应用程序被移到后台。当应用程序返回时,会调用 onResume() 函数。您需要在通话开始时保存状态,并在应用程序再次启动时重新加载。我知道的最简单的方法是使用bundles

于 2013-05-21T00:46:26.863 回答