2013-01-17 56 views
2

我正在使用一些各种广告网络,它们都需要将自己的活动名称添加到清单中。获取Intent内的活动名称

我想知道用户何时点击它们,所以我放入了替代startActivity(Intent intent),但我需要检查意图对象以有条件地设置一些值。

例如,点击tap的网络,它将启动类com.ads.TapForTap的活动。点击此按钮后,将调用startActivity(Intent intent)如何从意图获取类的名称?

感谢

回答

8

试试下面一行的获得当前活动名称,

this.getClass().getSimpleName() 
+1

我需要从一个intent对象中获取它。不是来自当前班级。这可能工作,虽然 – CQM

+0

这没有得到活动的名称,由其名称,但不是包名称。这很好,我可以使用 – CQM

4

,如果你有下面这行应该返回要启动活动的全名:

  • 开始活动的意图
  • 上下文实例(因此您可以拨打getPackageManager())。

String className = myIntent.resolveActivity (myContext.getPackageManager()).getClassName(); 

欲了解更多信息,请参阅Intent文档resolveActivity()

+1

我会稍后测试这个 – CQM

+0

@CQM你试过吗?根据我的测试,它会给你全名(com.package.ActivityName),但也许我误解了你想要的。 –

+0

当时我真的需要任何方式来区分包,解决我的底层问题,我做了'if(!context.getClass()。getSimpleName()。contentEquals(“”))',因为这个条件只会得到当点击其中一个广告网络时触发,因为我可能会添加更多我不需要更多细节 – CQM

15

您可以使用给定的意图参数的组件类名称。记住班级名称可能是空的!

intent.getComponent().getClassName()

+3

请注释您的答案,使其有用。我们不需要复制/粘贴解决方案。我们需要帮助提问者和读者理解解决方案。 –

相关问题