android消息
A. 简述在android中如何发送广播消息
1.发送广播
Intent intent = new Intent(BroadcastAction);
Bundle bundle = new Bundle();
bundle.putString("***", SUCCESS);
bundle.putString("FullPathName", mFullPathName);
intent.putExtras(bundle);
sendBroadcast(intent);
2.在Activity中创建一个内部类MyBroadcastReceiver扩展BroadcastReceiver,并在其中实现onReceive方法。
3.在Activity中声明一个MyBroadcastReceiver类型的成员变量,并注册:
private MyBroadcastReceiver myBroadcastReceiver;
...
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(BroadcastAction);
registerReceiver(receiver, filter);
4.使用完后要记得释放
unregisterReceiver(receiver);
注:1和2中的 BroadcastAction要是同一个Action
B. android消息推送原理是怎么样的
主要介绍其中的五种实现方式:短轮询、Comet、Flash XMLSocket、Server-sent、WebSocket1、短轮询
指在特定的的时间间隔(如每10秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器。浏览器做处理后进行显示。无论后端此时是否有新的消息产生,都会进行响应
2、Comet
包括了长轮询和长连接,长轮询是客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求;长连接是在页面中的iframe发送请求到服务端,服务端hold住请求并不断将需要返回前端的数据封装成调用javascript函数的形式响应到前端,前端不断收到响应并处理
3、Flash XMLSocket
在 HTML 页面中内嵌入一个使用了 XMLSocket 类的 Flash 程序。JavaScript 通过调用此 Flash 程序提供的socket接口与服务器端的socket进行通信。JavaScript 在收到服务器端以 XML 格式传送的信息后可以很容易地控制 HTML 页面的内容显示
4、Server-sent
服务器推指的是HTML5规范中提供的服务端事件EventSource,浏览器在实现了该规范的前提下创建一个EventSource连接后,便可收到服务端的发送的消息,实现一个单向通信。客户端进行监听,并对响应的信息处理显示
5、WebSocket
WebSocket是HTML5下一种新的协议,是基于TCP的应用层协议,只需要一次连接,便可以实现全双工通信,客户端和服务端可以相互主动发送消息。客户端进行监听,并对响应的消息处理显示
针对自己系统的应用场景选择合适的推送方案才是合理的,因此最后简单说一下实现个性化推送的两种方式。第一种很简单,直接使用第三方实现的推送,无需复杂的开发运维,直接可以使用。第二种就是自己封装,可以选择如今较为火热的WebSocket来实现系统的推送。
关于第三方推送平台,极光推送,操作简单,稳定性高,送达率快
C. 在android 中 什么对象主要用于发送消息和处理消息
Android消息机制中,Handler对象主要用于发送消息,不能够处理消息.
D. 如何向android端推送消息
建议这些东西用网络的 挺好用 去网络开发者中心逛逛 里面很多东西
E. android应用消息提醒功能怎么做
自定义消息推送的话,需要使用长连接保持客户端不掉线,然后服务器中需要记录客户端唯一标识符与其对应连接,服务器获取消息后,向指定客户端连接发送消息,如果发送失败,定时器应该在tick到达时再次尝试。
F. android推送消息如何实现
安卓消息推送的实现方案有下面几种:
MQTT协议实现
XMPP协议实现
C2DM云端推送功能(google官方提供,系统内置,但是国内用不了......)
中国统一推送(工信部牵头成立,但是目前只是开了几次会议,并没有什么实际的接口出来,不过以后应该会是中国境内的首选方案)
选择第三方消息推送平台,例如极光,个推等,极光成立于2011年,是国内最早开始做开发者服务的一批公司,极光推送的稳定性和送达率一直是业内做的比较好的,具体可以到极光官网了解
G. android消息弹出框怎么写
AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。
下面例子来自于android学习手册,android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳
要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法。
使用AlertDialog.Builder创建对话框需要了解以下几个方法:
setTitle :为对话框设置标题
setIcon :为对话框设置图标
setMessage:为对话框设置内容
setView : 给对话框设置自定义样式
setItems :设置对话框要显示的一个list,一般用于显示几个命令时
setMultiChoiceItems :用来设置对话框显示一系列的复选框
setNeutralButton :普通按钮
setPositiveButton :给对话框添加"Yes"按钮
setNegativeButton :对话框添加"No"按钮
create : 创建对话框
show :显示对话框
一、简单的AlertDialog
下面,创建一个简单的ALertDialog并显示它:
public class Dialog_AlertDialogDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Dialog alertDialog = new AlertDialog.Builder(this).
setTitle("对话框的标题").
setMessage("对话框的内容").
setIcon(R.drawable.ic_launcher).
create();
alertDialog.show();
}
}
package com.tianjf;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
public class Dialog_AlertDialogDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Dialog alertDialog = new AlertDialog.Builder(this).
setTitle("对话框的标题").
setMessage("对话框的内容").
setIcon(R.drawable.ic_launcher).
create();
alertDialog.show();
}
}运行结果如下:
二、带按钮的AlertDialog
上面的例子很简单,下面我们在这个AlertDialog上面加几个Button,实现删除操作的提示对话框
[java] package com.tianjf;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
public class Dialog_AlertDialogDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Dialog alertDialog = new AlertDialog.Builder(this).
setTitle("确定删除?").
setMessage("您确定删除该条信息吗?").
setIcon(R.drawable.ic_launcher).
setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
setNeutralButton("查看详情", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
create();
alertDialog.show();
}
}
package com.tianjf;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
public class Dialog_AlertDialogDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Dialog alertDialog = new AlertDialog.Builder(this).
setTitle("确定删除?").
setMessage("您确定删除该条信息吗?").
setIcon(R.drawable.ic_launcher).
setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
setNeutralButton("查看详情", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
create();
alertDialog.show();
}
}在这个例子中,我们定义了三个按钮,分别是"Yes"按钮,"No"按钮以及一个普通按钮,每个按钮都有onClick事件,TODO的地方可以放点了按钮之后想要做的一些处理
看一下运行结果:
可以看到三个按钮添加到了AlertDialog上,三个没有添加事件处理的按钮,点了只是关闭对话框,没有任何其他操作。
H. Android QQ消息实时接收机制
QQ的消息推送就是后台开启一个推送服务,这个服务会常驻内存,并且会不定时的发送心跳包来保持连接,像tcp传输一样,传输的协议qq用的是XMPP协议,基于XML解析的。主要是加了些消息检验、出错机制等,如果像自己了解推送的详细内容,可以去看看A...
I. android的消息推送怎么做
android的消息推送办法:1、可以使用轮询(Pull)方式
就是用客户端定时向服务器发送相关的信息,一旦服务器有变化就会马上同步消息。但这种方式对服务器的压力是十分大的,而且比较费客户端的流量,就是不断地向服务器发送请求,但是这样开发很简单。
2、使用持久连接(Push)方式
就是客户端和服务器之间建立起一连接,这样就可以实现消息的及时发送,而且这种方式开发难度大,开发周期较长。但是这是一种最常使用的方式,目前主流的消息推送都是通过这种方式做的。
选择消息推送软件,深圳极光就不错。极光截至2020年12月,已有超169万款APP在使用极光提供的服务。而且专注于为开发者提供稳定高效的消息推送、一键认证以及流量变现等服务,助力开发者的运营、增长与变现。
J. android中怎样消息提示框
在Android开发中,显示消息框有多种方法。
一、使用Toast显示提示信息框
Toast是一种非常方便的提示消息框,他会在程序界面上显示一个简单的提示信息,这个提示信息框用于向用户生成简单的提示信息,它具有两个特点。
1. Toast提示信息不会获得焦点,
2. Toast提示信息过一段时间会自动消失
使用Toast来生成提示消息也非常简单,只要如下几个步骤:
1. 调用Toast的构造器或makeText方法创建一个Toast对象。
2. 调用Toast的方法来设置该消息提示的对齐方式,页边距,显示内容等。
3. 调用Toast的show()方法,将他显示出来。
Toast的功能和用法都比较简单,大部分时候他只能显示简单的额文本提示如果应用需要显示诸如图片,列表之类的复杂提示,一般建议使用对话框完成,如果开发者确实想通过Toast来完成,也是可以的,Toast提供了一个setView()方法,该方法允许开发者自己定义Toast显示的内容。
下面贴一个例子代码:
package org.crazyit.toast;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
public class ToastTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button simple = (Button)findViewById(R.id.simple); //为按钮的单击事件绑定事件监听器
simple.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View source) {
//创建一个Toast提示信息
Toast toast = Toast.makeText(ToastTest.this,
"简单的提示信息"
// 设置该Toast提示信息的持续时间,
Toast.LENGTH_SHORT);
toast.show();
}
});
Button bn = (Button)findViewById(R.id.bn);
//为按钮的单击事件绑定事件监听器
bn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View source) {
//创建一个Toast提示信息
Toast toast = Toast.makeText(ToastTest.this,
"带图片的的提示信息"
// 设置该Toast提示信息的持续时间 ,
Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
//获取Toast提示里原有的View
View toastView = toast.getView();
//创建一个ImageView
ImageView image = new ImageView(ToastTest.this);
image.setImageResource(R.drawable.tools);
//创建一个LinearLayout容器
LinearLayout ll = new LinearLayout(ToastTest.this);
//向LinearLayout中添加图片、原有的View
ll.addView(image);
ll.addView(toastView);
toast.setView(ll);
toast.show();
}
});
}
}
二、使用Builder对象
Builder dlg=new Builder(ServerInfoUpdate.this);
dlg.setTitle("Error");
dlg.setMessage("Unknown error.");
dlg.show();
三、使用AlertDialog对象
// 一个简单的弹出对话框
return new AlertDialog.Builder(this).setTitle("这是一个简单的弹出对话框的 Demo")
.create();
// 一个相对复杂的弹出对话框
return new AlertDialog.Builder(this)
.setTitle("标题") // 设置标题
// .setCustomTitle(View) // 以一个 View 作为标题
.setIcon(R.drawable.icon01) // 设置标题图片
// .setMessage("信息") // 需要显示的弹出内容
.setPositiveButton("确定", new OnClickListener() { // 设置弹框的确认按钮所显示的文本,以及单击按钮后的响应行为
@Override
public void onClick(DialogInterface a0, int a1) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("单击了对话框上的“确认”按钮\n");
}
})
.setItems(R.array.ary, new DialogInterface.OnClickListener() { // 弹框所显示的内容来自一个数组。数组中的数据会一行一行地依次排列
public void onClick(DialogInterface dialog, int which) {
}
})
// 其他常用方法如下
// .setMultiChoiceItems(arg0, arg1, arg2)
// .setSingleChoiceItems(arg0, arg1, arg2)
// .setNeutralButton(arg0, arg1)
// .setNegativeButton(arg0, arg1)
.create();
四、弹出进度条对话框
ProgressDialog progress = new ProgressDialog(this);
progress.setMessage("loading...");
return progress;