在Facebook安卓应用中,我们会在应用被强制关闭时收到通知。它的工作原理是因为实现了推送通知。但我已经在我的应用程序中实现了本地通知,如果应用程序被强制关闭,我希望我的应用程序通知。那我怎么能实现呢。
void showNotify()
{
CharSequence details = "Notification raised";
int reqCode=0;
Intent notificationIntent = new Intent(context,
NotifyListActivity.class);
// notificationIntent.putExtra("clicked", "Notification Clicked");
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_SINGLE_TOP); // To open only one activity
// on launch.
PendingIntent pIntent = PendingIntent.getActivity(context, reqCode,
notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationManager nM = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder notify = new NotificationCompat.Builder(
context);
notify.setContentIntent(pIntent);
notify.setSmallIcon(R.drawable.appicon);
notify.setContentTitle("");
notify.setContentText(details);
notify.setAutoCancel(true);
nM.notify(reqCode, notify.build());
screenOn(context);
}
答案 0 :(得分:0)
我不认为您应该控制您的应用是否强行关闭,如果您的应用已被强制关闭,IMO通常不会按预期行事。
说过这两件事完全不同,当您收到推送通知时,您正在接收来自互联网(或其他来源)的消息,然后您可以回复显示本地通知的消息(在您的通知栏中),你会找到一种方法来触发你的本地通知以便显示(一个重复的警报?),通知不能自己启动(或者至少我不知道怎么做)。
答案 1 :(得分:0)
您可以将此用于异常处理:Android exception handling best practice? 这样,您可以在抛出未处理的异常时执行代码。你也可以抓住它们,但这对你来说可能不是一件有趣的事情。
然后在UncaughtExceptionHandler中我会启动一个前台服务。这是必要的,因为应用程序将关闭。我没有测试它,告诉我它是否有用。这将是服务的onCreate:
@Override public void onCreate() {
final NotificationCompat.Builder builder = new Builder(this);
builder.setSmallIcon(R.drawable.icon_resource);
builder.setContentTitle(getString(R.string.notification_title));
builder.setTicker(getString(R.string.notification_ticker));
builder.setContentText(getString(R.string.notification_content_text));
final Intent notificationIntent = new Intent(this, Activity_TO_OPEN_ON_NOTIFICATION_CLICKED.class);
final PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent, 0);
builder.setContentIntent(pi);
final Notification notification = builder.build();
startForeground(1234, notification);
}