finish()之后来自BaseActivity的getSimpleName

时间:2014-10-09 14:34:13

标签: android

在我的应用程序中,我创建了一个BaseActivity,从中扩展了我的所有活动。

在BaseActivity中,我认识到通过以下语句运行的活动:this.getClass().getSimpleName() (ex: ActivityA)

在我打开新活动(ActivityBActivityC等...)之前,一切正常。

当我使用手机的后退按钮时出现问题(我从activityC返回ActivityB)。在这种情况下,ActivityB已从堆栈中正确恢复,但在BaseTableActivityB)中,this.getClass().getSimpleName()的值仍为ActivityC

我该如何避免这个问题?你知道你帮帮我吗?

1 个答案:

答案 0 :(得分:1)

您需要做的就是在BaseActivity中创建protected final String,如下所示......

public class MyBaseActivity extends Activity {

    protected final String TAG = getClass().getSimpleName();

    // Any other code here

}

扩展Activity的任何MyBaseActivity都会继承TAG字段,并且会在创建时使用正确的名称对其进行实例化。

我在所有Android基类中都添加了一个TAG字段,因此我可以将它与Log一起用于在登录logcat时识别不同的对象。