电话通话后会出现Android启动画面

时间:2013-05-20 23:19:30

标签: android splash-screen

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

1 个答案:

答案 0 :(得分:0)

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