【java安卓】怎么调用另一个安卓activity的对象?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【java安卓】怎么调用另一个安卓activity的对象?相关的知识,希望对你有一定的参考价值。

A这个Activity怎么调用B这个Activity中的对象tv?

B.java
public TextView tv;
----
A.java
import.路径.B
B b=new B();
b.tv就能得到这个对象了吗?

参考技术A 互相调用不是你这样子的,存在两种情况
1、调用同一个工程内的林外一个act
2、调用不同工程(别人的、第三方的、系统的都可以,也可以是你自己写的另一个程序)的另一个act
看你的描述,应该不是互相调用的问题,而是如何获得另外一个act里面的某一个变量或者对象,同一个工程的所有act,都有一个instance(也许写错名字了),你可以在B.java中定义一个全局变量,在A.java中获取到B的instance ,r然后,B的所有全局变量或对象,都可以被A获得并操作,但是这种方式不是一个安全的方式!
设想一下:A操作B的这个tv,如果B也在操作这个tv,会是怎样?这种方式多了,灾难!少用!慎用!追问

您说的我还不是很理解,是用application实现吗,我对这方面真的不是很了解,能否多写一点提示

我也补充一下问题:工程中的B实际上是一个在后台播放的音乐服务,A是用户操作界面。
我需要通过A来判断B中的音乐对象是否有音乐了,如果有音乐的话并且处于播放状态的话,点击A中的暂停按钮就可以命令B音乐对象进行暂停。
这样很合理吗?

追答

1、前台act和后台service之间启动、调用,和2个act之间的start/stop基本是一样的
2、前台act和后台service之间的数据交互,一般采用broadcast来完成

追问

说的好对

谢谢您

请问,一个service能接受来自两个activity的Broadcast吗。service里面怎么对Broadcast的来源进行判断并且做出相应处理呢

追答

1、你说反了,或者说你理解反了!service是在后台的,act是在前台的,只有后台service发送广播,前台act接收广播,并自己决定对应的处理。
2、一般后台的service会有一些接口定义,或者广播定义,总之,是提供给调用方使用的
3、调用方自己决定如何处理借口,或者如何接收广播,并做出相应的处理
4、send broadcast和start activity方法几乎一样,一样可以传递参数Extra
5、因此,你如果希望使用某一个后台service,首先获得该service的接口方式,当然,使用说明、使用范例也是不可少的

追问

嗯,有道理。但实际上如果一个activity里面的intent传值有两种键,都调用sendBroadcast(intent).不同在于键A的值如path用来实例化对象, 键B的值如"0"或者"1"用于取值后判断0还是1进行下一步操作。
在service接收广播的onReceive方法里面要对不同的键进行判断,可是没有判断键A还是键B的方法。
或者是说需要2个reciever对象来接收,可行吧

本回答被提问者和网友采纳
参考技术B startActivity

为啥说安卓activity的onCreate()方法 只调用一次

为什么说安卓activity的onCreate()方法 只调用一次。这个图里,不是有2个箭头指到了onCreate()方法那里了么?

参考技术A 1、onCreate
方法只在activity一开始创建的时候执行。
2、也就是在该activity销毁后才能再次执行,假如当前activity上再打开一个activity,并且原来的activity已经销毁了,再返回原来的activity会重新执行onCreate
3、可以通过activity的生命周期的onStart方法或者是onResume方法对原来界面的数据进行刷新,也可以使用回调方法,或者是handler
+
Message
重新回来的那个不是原来的activity

以上是关于【java安卓】怎么调用另一个安卓activity的对象?的主要内容,如果未能解决你的问题,请参考以下文章

为啥说安卓activity的onCreate()方法 只调用一次

安卓怎么把activity做成dialog

安卓开发,SharedPreferences,怎么在其它Activity中取数据?

安卓应用开发中Activity之间怎么用按钮进行跳转?

android怎么从一个activity获取另一个activity的信息

求安卓编程一个页面切换到另一个页面的滑动是怎么做不出来的!