我有一个片段,在onResume中的片段中添加了Mainactivity我向服务器发送请求,问题是当我按回设备时它将显示一个toast“再次存在”,当我再次按下它将再次恢复时发送服务器请求而不是存在的应用程序。如何解决此问题。
代码: -
@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);
}
答案 0 :(得分:0)
有很多方法可以完成Activity
如果您在activity
本身
finish()
如果您想从Activity
Fragment
getActivity().finish()
来自其他class
或Activity
首先在Activity
中定义Object
类型的Activity
。
static Activity activity;
现在onCreate of this Activity
activity = this;
现在创建一个返回类型为getInstance()
Activity
public static Activity getInstace() {
return activity;
}
现在,当您想要完成活动呼叫时
Activity.getInstance().finish();
另一种方式
((ActivityName)context).finish();
答案 1 :(得分:-1)
更改强>
CMainActivity.this.finish();
以强>
getActivity().finish();