我的app的状态栏中有通知。这个问题是当你从应用程序按下主页按钮(将其推到后台)时,按下状态栏中访问的列表中的通知,它开始了活动的新副本。我想要做的就是恢复应用程序(比如当你长按主页按钮并按下应用程序的图标时)。有没有办法创建一个Intent来做到这一点?
答案 0 :(得分:1)
在AndroidManifest中为您的活动声明launchMode="singleInstance"
属性。
http://developer.android.com/guide/topics/manifest/activity-element.html#lmode
相比之下," singleTask"和" singleInstance"活动只能 开始一项任务。它们始终位于活动堆栈的根部。 此外,该设备只能在a处保存一个活动实例 时间 - 只有一个这样的任务。
答案 1 :(得分:0)
private void startNotificationOnStatusBar() {
try {
Intent notificationIntent = new Intent(this, RadioPlayerActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.icon)
.setContentTitle("Title")
.setContentIntent(intent)
.setPriority(2)
.setContentText("Content text")
.setAutoCancel(true);
mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
} catch (Exception e) {
}
}
这是我的代码,没有AndroidManifest修改。这是完美的。当用户点击通知时,它会恢复而不执行onCreate()方法。