我正在努力理解这些概念是如何运作的。
有人可以向我解释这些概念吗?
这是我想要理解的代码
Intent intent = new Intent();
intent.setAction("com.example.akshay.proximityalertexample2");
PendingIntent intent1 = PendingIntent.getBroadcast(this, 0, intent, 0);
locationManager.addProximityAlert(LAT, LONG, 200, -1, intent1);
IntentFilter filter = new IntentFilter("com.example.akshay.proximityalertexample2");
registerReceiver(new ProximityAlert(), filter);
广播类文件
package com.example.akshay.proximityalertexample2;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.util.Log;
import android.widget.Toast;
/**
* Created by Akshay on 9/18/2015.
*/
public class ProximityAlert extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String key = LocationManager.KEY_PROXIMITY_ENTERING;
Toast.makeText(context, key, Toast.LENGTH_SHORT).show();
Boolean entering = intent.getBooleanExtra(key, false);
if (entering) {
Log.e(getClass().getSimpleName(), "entering");
} else {
Log.e(getClass().getSimpleName(), "exiting");
}
NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
Notification notification = createNotification();
PendingIntent pendingIntent = PendingIntent.getActivity(context , 0 , null , 0 );
notification.setLatestEventInfo(context,"Proximity Alert!!","You Are Near the Point of intereste " ,pendingIntent);
}
private Notification createNotification() {
Notification notification = new Notification();
notification.when = System.currentTimeMillis();
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
notification.ledOffMS = 1500;
notification.ledOnMS = 1500;
return notification;
}
}
请解释一下这些概念的运作情况.. 任何帮助都意味着我很多
非常感谢
答案 0 :(得分:0)
这是一个非常古老的主题,但我想到了我自己的学习以及其他任何人来到这个主题的好处,我会对它进行一次拍摄。
在第一个片段中,您正在创建一个不执行任何操作的intent,并使用pendingIntent包装它,以便稍后在某个时间点由app调用。意图过滤器用于让其他应用程序(在这种情况下主要是接收者)知道我们正在处理什么样的意图(这是一个糟糕的例子,个人会像PROX_ALERT_INTENT一样)。我们添加一个接近警报,并使用我们的Receiver类注册该意图。
在Receiver类中,我们首先定义一个布尔键,用于确定我们是否已进入近距离警报半径。然后我们从广播的意图中获取密钥(它自动传递),然后我们检查用户是否确实进入了接近警报区域。 如果他有,我们会创建一个附加了未决意图的通知(例如,在此情况下只会启动新活动),然后启动通知。
请注意,这种通知构建方法已弃用,现在必须使用构建器。