覆盖所有活动Android的OnResume()方法

9

我有一个拥有10多个活动的应用程序,我想在所有这些活动中使用相同的代码覆盖方法onResume()

我知道我可以在每个活动中重写此方法,但我正在寻找一种高效的解决方案。

此外,我希望在这个onResume中显示一个信息,具体取决于来自哪个活动。例如:如果您在MainActivity中,我希望这个通用的onResume检测到它来自这个活动并显示I'm coming from MainActivity

谢谢!


但是,如果我们扩展BaseClass,就无法扩展任何其他类,那么我的解决方案是否更好呢? - Shrikant Ballal
@Shrikant 不是因为它不起作用。你可以在那里定义 onResume,但你不能放任何通用代码在那里。 - zapl
有没有像什么的其他类,既然你本来就要扩展Activity? - njzk2
2个回答

18

你应该在一个BaseClassOverride活动,并在其他活动中使用你的BaseClass 而不是Activity:

public class BaseClass extends Activity 
{

  public void onResume() 
  {
    // common code
  } 
}

public class OtherClass extends BaseClass 
{
}

但是,如果我们扩展BaseClass,就不能扩展任何其他类,那么我的解决方案是否更好? - Shrikant Ballal
为什么需要扩展其他类?之前你只是从Activity继承吗? - Eldhose M Babu
@EldhoseMBabu,让OtherClass扩展BaseClasas。 - Blackbelt
我不知道我理解的是否正确...BaseClass继承自Activity,而您的其他Activity类也继承自BaseClass...所以它在内部已经从Activity继承了。那么为什么还需要进一步继承呢? - Eldhose M Babu
现在我想在这个onResume方法里根据来自哪个活动来显示一条消息,例如:如果您在MainActivity中,我希望这个常规的onResume检测到它是来自此活动并显示“我来自MainActivity”。 - user1677266

0
创建一个父活动并重写其onResume方法,然后使您的所有10个活动扩展所创建的父活动。

现在我想在onResume中根据来自哪个活动显示一条消息,例如:如果您在MainActivity中,我希望这个常见的onResume检测到它是来自该活动并显示“我来自MainActivity”。 - user1677266

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接