【问题标题】:Calling an intent two types调用意图两种类型
【发布时间】:2013-11-05 02:22:33
【问题描述】:

当调用一个意图时,我看到两种类型:

  1. 公共意图(上下文 packageContext,类 cls)
  2. public Intent setClassName(上下文包上下文,字符串类名)

什么时候应该使用?

【问题讨论】:

  • 文档是怎么说的?
  • 有没有什么情况让你纠结使用哪个?似乎比可怕更假设。

标签: android android-intent


【解决方案1】:

使用第一个,更简单,只需要1行代码:

new Intent(context, MyActivity.class);

如果您在编译时不知道类,则只需要使用第二种形式(即:您需要在运行时选择类并且您只有它的名称作为字符串)。

【讨论】:

  • 我明白了,但在我正在审查的代码中,我认为它是 intent.setClassName(this, myclass.class.getName());在这里,我知道班级名称为“myclass”。请帮忙
  • 请显示更多此代码。 Intent 是如何创建的?它还调用了哪些其他方法?
  • 代码sn-p是@Override public void onClick(View v) { Intent intent = getIntent();意图.addFlags(意图.FLAG_ACTIVITY_CLEAR_TOP); intent.setClassName(this,myclass.class.getName()); startActivityForResult(intent, 1);结束(); }
  • 在您提供的代码 sn-p 中,开发人员正在重用现有的 Intent(可能已经设置了某些 EXTRAS 或 ACTION 或 DATA 字段。他正在将此 Intent 重定向到通过设置类名来进行另一个活动。这有意义吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
相关资源
最近更新 更多