Android 意图 Activity 回调
Android Intent Activity Callback
我正在开发一个 Android 模块,它基本上由一个自定义视图组成,第三方可以直接进入他们的任何活动。
此模块包含配置 activity(基于 PreferenceActivity)。
鉴于您无法从视图启动 activity,该模块会在 activity 中调用 'openConfig(Intent intent)'。此 activity 用作模块的代表。
到目前为止一切正常(虽然我真的希望模块在内部处理所有事情,不需要委托方法,但我认为这是不可能的)。
但是,我需要从首选项 activity 到模块的某种回调,以便在更改设置时通知模块。
我正在考虑将模块的主要 class 作为首选项的委托添加 activity;
ConfigActivity a = new ConfigActivity();
a.testVar = "testtest";
Intent intent = new Intent(getContext(), a.getClass());
delegate.handleConfigAction(intent); //
但是,这个仅使用简单字符串(而不是接口)的测试表明,在 activity 启动后,字符串不会被设置。
第二个想法是在意图上使用 'putExtra()',但这并不真正适合用例,因为我想放置的委托实际上是一个视图而不是一个可序列化的数据对象。
我有什么方法可以在内部处理这个问题吗?我知道 'onActivityResult()' 函数 (http://developer.android.com/training/basics/intents/result.html),但这意味着使用我的模块的第三方开发人员需要处理这个问题,出于显而易见的原因需要避免这种情况。
非常感谢任何帮助!
编辑:最终解决方案
最后,我将模块从 View 更改为 Fragment,现在可以更好地处理 "child" 活动等。从片段启动 Activity 时,'onActivityResult' 函数可以完美地完成手头的任务。
您可以使用 Context
从 View
开始 Activity
,如:
@Override
public void onClick() {
Intent intent = new Intent(getContext(), ConfigActivity.class);
intent.putExtra("testVar", "testtest");
getContext().startActivity(intent);
}
您可以使用 onWindowVisibilityChanged()
方法读取将在 ConfigActivity
中设置的配置,以使您的 View
改变其行为。
我正在开发一个 Android 模块,它基本上由一个自定义视图组成,第三方可以直接进入他们的任何活动。 此模块包含配置 activity(基于 PreferenceActivity)。
鉴于您无法从视图启动 activity,该模块会在 activity 中调用 'openConfig(Intent intent)'。此 activity 用作模块的代表。
到目前为止一切正常(虽然我真的希望模块在内部处理所有事情,不需要委托方法,但我认为这是不可能的)。 但是,我需要从首选项 activity 到模块的某种回调,以便在更改设置时通知模块。
我正在考虑将模块的主要 class 作为首选项的委托添加 activity;
ConfigActivity a = new ConfigActivity();
a.testVar = "testtest";
Intent intent = new Intent(getContext(), a.getClass());
delegate.handleConfigAction(intent); //
但是,这个仅使用简单字符串(而不是接口)的测试表明,在 activity 启动后,字符串不会被设置。
第二个想法是在意图上使用 'putExtra()',但这并不真正适合用例,因为我想放置的委托实际上是一个视图而不是一个可序列化的数据对象。
我有什么方法可以在内部处理这个问题吗?我知道 'onActivityResult()' 函数 (http://developer.android.com/training/basics/intents/result.html),但这意味着使用我的模块的第三方开发人员需要处理这个问题,出于显而易见的原因需要避免这种情况。
非常感谢任何帮助!
编辑:最终解决方案 最后,我将模块从 View 更改为 Fragment,现在可以更好地处理 "child" 活动等。从片段启动 Activity 时,'onActivityResult' 函数可以完美地完成手头的任务。
您可以使用 Context
从 View
开始 Activity
,如:
@Override
public void onClick() {
Intent intent = new Intent(getContext(), ConfigActivity.class);
intent.putExtra("testVar", "testtest");
getContext().startActivity(intent);
}
您可以使用 onWindowVisibilityChanged()
方法读取将在 ConfigActivity
中设置的配置,以使您的 View
改变其行为。