繁体   English   中英

Android Intent活动回调

[英]Android Intent Activity Callback

我正在开发一个基本上包含自定义View的Android模块,第三方可以直接参与其任何活动。 该模块包括配置活动(基于PreferenceActivity)。

鉴于您无法从View启动活动,模块将在显示的活动上调用“ openConfig(Intent intent)”。此活动充当模块的委托。

到目前为止,它仍然可以正常工作(尽管我真的很希望模块可以内部处理所有事情,不需要委托方法,但我认为这是不可能的)。 但是,我需要从首选项活动到模块的某种回调,以便在更改设置后通知模块。

我当时只是想将模块的主类添加为首选项活动的委托。

ConfigActivity a = new ConfigActivity();
a.testVar = "testtest";
Intent intent = new Intent(getContext(), a.getClass());
delegate.handleConfigAction(intent); //

但是,仅使用一个简单的String(而不是接口)进行的测试显示,活动开始后不会设置String。

第二个想法是在意图上使用'putExtra()',但这并不完全适合用例,因为我想放置的委托实际上是一个View而不是一个可序列化的数据对象。

我有什么办法可以在内部进行处理吗? 我知道'onActivityResult()'函数( http://developer.android.com/training/basics/intents/result.html ),但这意味着使用我的模块的第三方开发人员需要处理此问题,出于明显的原因需要避免的事情。

任何帮助将不胜感激!

编辑:最终解决方案最后,我将模块从“视图”更改为“片段”,现在该模块在处理“子”活动等方面效果更好。 从片段开始活动时,“ onActivityResult”功能可以很好地完成手头的任务。

您可以使用其ContextView启动Activity ,如下所示:

@Override
public void onClick() {
    Intent intent = new Intent(getContext(), ConfigActivity.class);
    intent.putExtra("testVar", "testtest");
    getContext().startActivity(intent);
}

您可以使用onWindowVisibilityChanged()方法读取将在ConfigActivity设置的配置,以使View更改其行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM