我有两个活动拨号盘和电话。在拨号盘活动中,有一个编辑框和拨打号码的按钮,在电话活动中有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();
}
}
答案 0 :(得分:4)
在创建活动时调用onCreate。
一旦你回来,就会召唤onResume。
如果你有一些应该在onCreate和onResume上运行的代码,你应该把它放在onResume中,而总是调用onResume,无论你是在创建一个新的活动还是你要回到已经在运行的活动。
请参阅此图中的活动生命周期:
答案 1 :(得分:1)
将以下方法添加到您的拨号活动:
@Override
protected void onPause()
{
finish();
}