当我返回第1个Activity时,第2个Activity的onCreate()函数没有在第2次调用

时间:2014-05-12 07:23:37

标签: java android sip voip

我有两个活动拨号盘和电话。在拨号盘活动中,有一个编辑框和拨打号码的按钮,在电话活动中有5行可供呼叫。当你选择第1行时,拨号活动是打开的,依此类推。我遇到的问题是第一次我从电话活动中选择任何一行,拨号活动的onCreate功能是cal,当我返回到电话活动并选择其他行时,不调用拨号活动的onCreate()函数。拨号活动的onStart()函数是cal,我想调用onCreate()函数.plz帮我解决这个问题。

public class DialPad extends Activity 
{
    private TextView m_objStatus;
    private Button m_objBtnDial; 




    int m_nLineNo = -1;
    boolean m_objContactFlag;

    public static Phone m_objPhone;
    private static String[] m_objPhoneNum = new String[VaxSIPUserAgent.TOTAL_LINE_COUNT];

    public void onCreate(Bundle savedInstanceState)
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        Phone.m_objDialPad = this;

        Intent intent = getIntent();

        int nIntentExtraLineNo = intent.getIntExtra("LineNo", 1);
        m_nLineNo = nIntentExtraLineNo; 



        final int [] aLineArray =  new int[VaxSIPUserAgent.TOTAL_LINE_COUNT - 1];

        int nIndex = 0;

        for (int nLineNo = 0; nLineNo < VaxSIPUserAgent.TOTAL_LINE_COUNT; nLineNo++)
        {
            if(m_nLineNo ==  nLineNo)
                continue;

            aLineArray[nIndex] =  nLineNo + 1;
            nIndex++;

        }

        String sLineStatus = VaxStatus.m_objVaxStatus.GetLineStatus(m_nLineNo);
        OnStatusPhone(sLineStatus);


             String sPhoneNo = intent.getStringExtra("PhoneNo");

        if(sPhoneNo != null)
        {
            m_objPhoneNum[nIntentExtraLineNo] = sPhoneNo;
        }

        m_objEditDialscreen.setText(m_objPhoneNum[nIntentExtraLineNo]);
    }




    @Override
    protected void onStart() 
    {



        UpdateDialBtn();


        if(m_objContactFlag == false)
            m_objEditDialscreen.setText(m_objPhoneNum[m_nLineNo]);

        IncommingCallSlider.m_objCallSlider.SetActiveActivity(this, R.id.dialpad);
        IncommingCallRing.m_objIncommingCallRing.SetActiveActivity(this);

        DialCallTone.m_objDialCallTone.SetActiveActivity(this);

        super.onStart();
    }



    @Override
    protected void onStop() 
    {
        m_objPhoneNum[m_nLineNo] = m_objEditDialscreen.getText().toString();
        super.onStop();
    }


 }

2 个答案:

答案 0 :(得分:4)

在创建活动时调用onCreate。

一旦你回来,就会召唤onResume。

如果你有一些应该在onCreate和onResume上运行的代码,你应该把它放在onResume中,而总是调用onResume,无论你是在创建一个新的活动还是你要回到已经在运行的活动。

请参阅此图中的活动生命周期:

enter image description here

答案 1 :(得分:1)

将以下方法添加到您的拨号活动:

@Override
    protected void onPause() 
    {
       finish();   
    }