2014-05-12 165 views
1

我有两个活动拨号盘和电话。在拨号盘活动中有一个编辑框和按钮来拨打号码,在电话活动中有5条线路要打电话。当你选择线路1时,拨号活动打开等等。我面临的问题是第一次我从电话活动中选择任何线路,拨号活动的onCreate功能为cal,当我返回到电话活动并选择其他线路时,不会调用拨号活动的onCreate()功能。拨号活动的onStart()函数是cal,我想调用onCreate()函数.plz帮助我解决这个问题。当我返回第一个活动时,第二个活动的onCreate()函数不会在第二次调用

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(); 
    } 


} 
+0

我想CAL在第2条第二时间,但在onStart()函数被调用的getIntent()函数。 – user3136235

+0

oncreate()只会被调用一次...您可以在每次返回电话活动时完成拨号活动。 – Vikram

回答

1

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

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

的onCreate创建活动时被调用。

一旦你回来,onResume将被调用。

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

请参见本图中的活性生命周期:

enter image description here

相关问题