所以这就是我想在这里实现的......我们在设备上安装了两个安卓APK ...每个APK都可以强制自己在前台(这不是一般公众会使用的应用程序没关系......)
因此我们使用以下代码使用此代码:
Intent i = new Intent(Variables.context, HomeActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);
大!
但是,在运行4.2.2(也可能是其他人)的手机上,我们注意到行为不符合预期。可能会发生以下两件事。
让我们假设活动a&任务a在前台,但是想要使活动b和任务b到达前台它不起作用。
但是,如果没有任务在前台并且主启动器被聚焦,则活动b和任务b按预期弹出到前台。
以下是其中一个应用程序中的一个清单示例:
<activity
android:name="some.app.id.goes.here"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我尝试添加以下代码:
android:launchMode="singleTop"
它仍然不起作用。
我有什么遗失的吗?
一些注意事项:
答案 0 :(得分:0)
嗯,这是多么痛苦......
这是我必须做的解决方法......
private void generateNotificationToPopActivityToTop(final int id, Context context, String message) {
Intent notificationIntent = new Intent(context, HomeActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(context.getString(R.string.app_name))
.setFullScreenIntent(intent, true)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setContentText(message)
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS);
final NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(id, mBuilder.build());
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mNotificationManager.cancel(id);
}
}, 1000);
}