如何在Android中完成活动?

时间:2016-08-01 03:35:14

标签: android android-fragments

我有一个片段,在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);
}

2 个答案:

答案 0 :(得分:0)

有很多方法可以完成Activity

  • 如果您在activity本身

    finish()

  • 如果您想从Activity

    完成Fragment

    getActivity().finish()

  • 来自其他classActivity

    首先在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();