如何在android中完成活动?
我在Mainactivity中添加了一个片段,在我向服务器发送请求的onResume中添加了该片段,问题是当我再次按下设备时,它将显示一个toast“pree reach to exist”,当我再次按下时,它将再次恢复并发送服务器请求,而不是exist app。我如何解决此问题 代码:-如何在android中完成活动?,android,android-fragments,Android,Android Fragments,我在Mainactivity中添加了一个片段,在我向服务器发送请求的onResume中添加了该片段,问题是当我再次按下设备时,它将显示一个toast“pree reach to exist”,当我再次按下时,它将再次恢复并发送服务器请求,而不是exist app。我如何解决此问题 代码:- @Override public void onResume() { super.onResume(); Log.i(TAG, "onResume........."); /*Regi
@Override
public void onResume() {
super.onResume();
Log.i(TAG, "onResume.........");
/*Registered Broadcast receiver*/
IntentFilter m_intentFilter = new IntentFilter();// creating object of Intentfilter class user for defining permission
m_intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");// action to check Internet connection
getActivity().registerReceiver(m_oInternetChecker, m_intentFilter);// register receiver....
getDetails();
}
private void getDetails() {// get details of user from shared preference...
CLoginSessionManagement m_oSessionManagement = new CLoginSessionManagement(getActivity());// crating object of Login Session
HashMap<String, String> user = m_oSessionManagement.getLoginDetails();// get String from Login Session
m_szMobileNumber = user.get(CLoginSessionManagement.s_szKEY_MOBILE).trim();// getting password from saved preferences..........
m_szEncryptedPassword = user.get(CLoginSessionManagement.s_szKEY_PASSWORD).trim();// getting mobile num from shared preferences...
sz_RecordCount = String.valueOf(m_n_DefaultRecordCount);// increment of record count
m_n_DeafalutLastCount = 0;
sz_LastCount = String.valueOf(m_n_DeafalutLastCount);// increment of last count...
s_oDataset = new ArrayList<>();// making object of Arraylist
if (NetworkUtil.isConnected(getActivity())) {
m_NoInternetWarning.setVisibility(View.GONE);
postDealListingDatatoServer();// here sending request in onCreate
} else {
m_NoInternetWarning.setVisibility(View.VISIBLE);
m_BtnRetry.setEnabled(false);
m_BtnRetry.setBackgroundColor(Color.rgb(192, 192, 192));// color of login button
mSwipeRefresh.setVisibility(View.GONE);
}
}
@Override
public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
CMainActivity.this.finish();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, getResources().getString(R.string.pressagaintoexit), Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce = false;
}
}, 2000);
}
@覆盖
恢复时公开作废(){
super.onResume();
Log.i(标签“onResume…”);
/*注册广播接收机*/
IntentFilter m_IntentFilter=new IntentFilter();//正在创建IntentFilter类用户的对象以定义权限
m_intentFilter.addAction(“android.net.conn.CONNECTIVITY_CHANGE”);//检查Internet连接的操作
getActivity().registerReceiver(m_oInternetChecker,m_intentFilter);//寄存器接收器。。。。
getDetails();
}
private void getDetails(){//从共享首选项获取用户的详细信息。。。
CLoginSessionManagement m_oSessionManagement=new CLoginSessionManagement(getActivity());//登录会话的装箱对象
HashMap user=m_oSessionManagement.getLoginDetails();//从登录会话获取字符串
m_szMobileNumber=user.get(CLoginSessionManagement.s_szKEY_MOBILE).trim();//从保存的首选项获取密码。。。。。。。。。。
m_szEncryptedPassword=user.get(CLoginSessionManagement.s_szKEY_PASSWORD).trim();//从共享首选项获取移动num。。。
sz_RecordCount=String.valueOf(m_n_DefaultRecordCount);//记录计数的增量
m_n_deaflutlastcount=0;
sz_LastCount=String.valueOf(m_n_deaflutlastcount);//最后一次计数的增量。。。
s_oDataset=new ArrayList();//生成ArrayList的对象
if(NetworkUtil.isConnected(getActivity())){
m_NoInternetWarning.setVisibility(View.GONE);
postDealListingDatatoServer();//此处在onCreate中发送请求
}否则{
m_NoInternetWarning.setVisibility(View.VISIBLE);
m_BtnRetry.setEnabled(false);
m BtnRetry.setBackgroundColor(Color.rgb(192、192、192));//登录按钮的颜色
mSwipeRefresh.setVisibility(View.GONE);
}
}
@凌驾
public void onBackPressed(){
如果(DoubleBacktoExit按Donce){
super.onBackPressed();
CMainActivity.this.finish();
返回;
}
this.doublebacktoexit pressedonce=true;
Toast.makeText(this,getResources().getString(R.string.pressagaintoexit),Toast.LENGTH_SHORT.show();
new Handler().postDelayed(new Runnable()){
@凌驾
公开募捐{
DoubleBackToExit PresseDonce=false;
}
}, 2000);
}
更改
CMainActivity.this.finish();
至
getActivity().finish();
有很多方法可以完成
活动
- 如果您在
本身活动中
finish()
- 如果您想从
片段中完成
活动
getActivity().finish()
- 来自其他
或课程
首先在活动
中定义活动
类型的活动
对象
静态活动代码> 现在,一旦创建此
活动
activity=this代码> 现在创建一个方法
,返回类型为getInstance()
Activity
现在,当您想要完成活动调用时公共静态活动getInstance(){ 返回活动; }
Activity.getInstance().finish()代码>
- 另一种方式
((ActivityName)context).finish()代码>
finish()
来终止一个活动,但我认为这不是你的问题,是吗?将你的发布到backpressed()
code尝试终止像getActivity()这样的活动。finish()<代码>静态活动活动。。。单身?这似乎不是一个好的模式。