在我的应用程序中,我创建了一个BaseActivity,从中扩展了我的所有活动。
在BaseActivity中,我认识到通过以下语句运行的活动:this.getClass().getSimpleName() (ex: ActivityA)
在我打开新活动(ActivityB
,ActivityC
等...)之前,一切正常。
当我使用手机的后退按钮时出现问题(我从activityC
返回ActivityB
)。在这种情况下,ActivityB
已从堆栈中正确恢复,但在BaseTable
(ActivityB
)中,this.getClass().getSimpleName()
的值仍为ActivityC
。
我该如何避免这个问题?你知道你帮帮我吗?
答案 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时识别不同的对象。