或者我应该在意图中发送一些额外的数据来知道呼叫吗?如果没有预定义的方法,喜欢getIntent并做一些事情吗?
Pan*_*mar 57
我知道这个问题已经回答了,但我有一个更好的解决方案..
当您的活动开始时,仅通过目标活动中startActivity()的getCallingActivity()方法将返回null.当它被调用startActivityForResult()时它将返回调用活动的名称.
有关更多详细信息,请参阅getCallingActivity.
因此,您可以在完成呼叫活动之前检查活动.如果result为null,则调用Activity startActivity(),如果result不为null,则调用Activity startActivityForResult().而已.
例如: -
if (getCallingActivity() == null) {
//This Activity was called by startActivity
} else {
//This Activity was called by startActivityForResult
}
Run Code Online (Sandbox Code Playgroud)
我认为您应该在清单中为相同的活动公开几个意图,然后测试调用意图以调整您的行为.
清单中活动意图过滤器的示例:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
以及活动onCreate中的相应代码:
if (getIntent().getAction().equals(Intent.ACTION_VIEW)) {
// do whatever you need to do here
} else if (getIntent().getAction().equals(Intent.ACTION_PICK)){
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8451 次 |
| 最近记录: |