怎么启动一个带参数的activity?

Zack4zhou
  • 319

不是在activity里传递参数,这个用Intent我会

public NewActivity(MyCallback myCallback) {
}

比如我这么一个 NewActivity

Intent intent = new Intent(Activity.this, NewActivity.class);

我的Intent都是这么写的,默认是启动不带参数的,怎么启动带参数的?
求指点





ADD:我想传递的是接口,我尝试用避开上面的传递方法,用Intent来传,
但是Intent没有直接传接口的API,我就试着把接口序列化,但是也报错了

Caused by: java.io.NotSerializableException:

回复
阅读 4.1k
6 个回答
✓ 已被采纳

请不要把参数写在构造方法里,Android系统是IOC的,Activity的实例化是有系统来完成,系统不会实例化带有参数的构造方法。你这样传递是无效的。

如果你需要传递任意对象作为参数又不希望改变其性质适配Intent,你可以考虑采用广播或者EventBus中的Sticky消息来传递。

不过非常不认同你的做法,在Activity间传递负责对象需要编程者需要较高水平,稍有不慎就会造成内存泄露,引起程序不稳定,希望你谨慎考虑,寻找其他替代方法。

intent 可以传递参数的

intent 可以传递参数,如果传递的是对象请序列化,序列化使用android自己序列化接口Parcelable。另外何谓API传递,这种说法很不解?也可以尝试传递一些String数据来判断你MyCallback该怎么创建。

我感觉没有什么理由不用系统提供好的Intent而去自己搞一套

用map构建一个cache,用完就clear值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏