在背面按 - 活动已泄露最初在这里注册的IntentReceiver。你是否错过了对unregisterReceiver()的调用?

时间:2014-01-07 19:12:20

标签: android android-intent android-activity

我正在写一个有2个活动的android应用程序。当我想从第一个开始第二个时,我就这样做:

Intent k = new Intent(MainActivity.this, AboutActivity.class);
startActivity(k);

但是当我想回到那个活动时,我不想做一个新的活动,因为我觉得这不正确!但对于OnBackPress()我刚刚调用finish(); 但我遇到了这个错误。它进入最后的活动,并且应用程序显然正常工作但异常抛出! 这是AboutActivity:

package com.example.ruby;
import com.example.ruby.R;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.widget.TextView;

public class AboutActivity extends Activity {
TextView titleTxt;
TextView mainTxt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_about);

    titleTxt = (TextView) findViewById(R.id.TitleTxt);
    mainTxt = (TextView) findViewById(R.id.AboutTxt);

    mainTxt.setMovementMethod(new ScrollingMovementMethod());
    Typeface face = Typeface.createFromAsset(getAssets(),
            "fonts/Btabassom.ttf");

    titleTxt.setTypeface(face);
    mainTxt.setTypeface(face);
    }
}

我查了很多论坛,我也看到了

@Override
protected void onStop()
{
    unregisterReceiver(yourReceiver);
    super.onStop();
}

但我没有什么可放在这里的。我不知道如何处理这个错误! 任何想法?

1 个答案:

答案 0 :(得分:0)

如果您只想通过buttonclick从第2个活动返回到第1个活动,例如只需在其onClick()方法中调用finish()。只有当前活动将被终止,因此第一个活动将再次显示。

如果您只想再次显示第一个活动,则无需修改onBackPressed()方法。不要在onBackPressed()中调用finish()!第一个活动存储在backstack中,只有在操作系统需要释放一些内存时才会重新创建。 另见:  http://developer.android.com/training/basics/activity-lifecycle/recreating.html