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

android怎么从一个activity获取另一个activity的信息,第1张

使用Broadcast广播即可

android系统中,BroadcastReceiver的设计初衷就是从全局考虑的,可以方便应用程序和系统、应用程序之间、应用程序内的通信

在获取消息activity中建立BroadcastReceiver内部类,并且注册广播

示例代码如下

//接受消息的activity

public class MainActivity extends Activity {

private InnerReceiver receiver = new InnerReceiver();

@Override

protected void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutactivity_main);

}

@Override

protected void onRestart() {

superonRestart();

//注册广播

IntentFilter filter = new IntentFilter("test");

registerReceiver(receiver, filter);

}

@Override

protected void onStop() {

superonStop();

取消广播

unregisterReceiver(receiver);

}

public class InnerReceiver extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {

//使用intent获取发送过来的数据

String msg = intentgetStringExtra("msg");

}

}

}package comexampledemo;

import androidappActivity;

import androidcontentIntent;

import androidosBundle;

import androidviewView;

import androidviewViewOnClickListener;

import androidwidgetButton;

import androidwidgetEditText;

//发送消息的activity

public class SendActivity extends Activity {

private Button btn;

private EditText text;

@Override

protected void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutactivity_main);

btn = (Button)findViewById(Ridbutton);

text = (EditText)findViewById(Ridtext);

btnsetOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent("test");

intentputExtra("msg", textgetText()toString());

sendBroadcast(intent);

}

});

}

}

简述表单资料传递的两种方式

GET POST

1 get是从伺服器上获取资料,post是向伺服器传送资料。

2 get是把引数资料伫列加到提交表单的ACTION属性所指的URL中,值和表单内各个栏位一一对应,在URL中可以看到。post是通过> url中通过传引数来传递资料

用form表单提交资料

我知道的就这么多了

Android 页面之间资料传递方式有几种

1如果页面之间有直接关系,如Activity和在它之内的Fragment,可以直接通过介面的呼叫来传递资料。优势:直接,方便。 劣势:程式码耦合性较高

2如果是两个Activity之间传递资料,有介面切换的过程的话,可以用startActivity

或startActivityForResult。用其中的intent引数携带资料。优势:一般用于初始化Activity和呼叫系统功能

4如果页面之间传递资料没有页面切换的过程,可以通过广播的方式,sendBroadcast(intent);

要接受资料的页面注册这个广播就行了。

优势:程式码耦合性低,易重构,适用范围广。缺点:资料需要序列化和反序列化,程式码较多

4通过储存介质来分享资料,如页面A将资料存入资料库,SharedPreferences

,档案,Inter。页面B通过读取它们来得到资料

优势:资料储存时间长,不受到介面生命周期的影响 缺点:读取速度较慢,需要非同步 *** 作

5。采用事件汇流排的方式,注册和接收事件(资料),其中的代表者是EventBus,页面需要指定和注册接收事件的型别

优势:不用序列化资料,适用范围大 缺点:需要学习使用。

winform资料传递

参见

:wenkubaidu/view/320a7b4de518964bcf847ced

ActivityManager manager=(ActivityManager)contextgetSystemService(ContextACTIVITY_SERVICE);

List<RunningTaskInfo> info=managergetRunningTasks(1);

String classname = null;

if( null != info && !(infoisEmpty())){

classname=infoget(0)topActivitygetClassName();

if (classnameequals("comandroidsettingsCryptKeeper")) {

return;

}else {

}

}else{

}

说明:String shortClassName = infoget(0)topActivitygetShortClassName(); //类名

String className = infoget(0)topActivitygetClassName(); //完整类名

String packageName = infoget(0)topActivitygetPackageName(); //包名

getRunninTask(int max)获得当前的max个task的list<ActivityManagerrunningTask>,实际个数可能少于max个,取决于当前运行的task个数是否大于max个。

get(0)取得当前使用的runningTask,get(1)是上一次使用的runningTask

ActivityManagerrunningTask的topActivity可以获得取得runingTask的顶层activity

在androidmanifestxml中,添加用户权限 <uses-permissionAndroid:name="androidpermissionGET_TASKS">

Fragment获取它所在的Activity:调用Fragment的getActivity()方法即可返回它所在的Activity

Activity获取它包含的Fragment:调用Activity关联的FragmentManager的findFragmentById(int id)或findFragmentByTag(String tag)方法即可获取指定的Fragment

在界面布局文件中使用<fragment>元素添加Fragment时,可以为<fragment>元素指定android:id或android:tag属性,这两个属性都可用于标识该Fragment,接下来可以通过findFragmentById(int id)或者findFragmentByTag(String tag)来获取该Fragment

以上就是关于android怎么从一个activity获取另一个activity的信息全部的内容,包括:android怎么从一个activity获取另一个activity的信息、简述表单资料传递的两种方式、如何获取TASK中的Activity等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9341785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存