如何在android中完成活动?

如何在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

我在Mainactivity中添加了一个片段,在我向服务器发送请求的onResume中添加了该片段,问题是当我再次按下设备时,它将显示一个toast“pree reach to exist”,当我再次按下时,它将再次恢复并发送服务器请求,而不是exist app。我如何解决此问题

代码:-

@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()<代码>静态活动活动
。。。单身?这似乎不是一个好的模式。