使用Broadcast广播即可
android系统中,BroadcastReceiver的设计初衷就是从全局考虑的,可以方便应用程序和系统、应用程序之间、应用程序内的通信
在获取消息activity中建立BroadcastReceiver内部类,并且注册广播
示例代码如下
//接受消息的activitypublic 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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)