Я пытаюсь создать небольшое окно для открытия, если вы нажмете кнопку быстрого ответа в уведомлении. В WhatsApp открывается полуэкранное окно. В настоящее время я делаю следующее:
Я открываю операцию под названием NotificationActivity
. В AndroidManifest.xml
я зарегистрировал активность как
<activity
android:name=".activity.NotificationActivity"
android:theme="@style/Theme.AppCompat.Light.Dialog.custom"
android:label="@string/title_activity_notification"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize|stateHidden" />
Это стиль:
<style name="Theme.AppCompat.Light.Dialog.custom">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
Теперь, когда приложение завершено закрыто (закрыто, а затем удалено), он работает отлично.
Однако, если приложение просто сведено к минимуму, когда кто-то нажимает кнопку ответа, он открывает приложение, а затем вставляет над ним NotificationActivity. Как запретить открывать приложение в фоновом режиме и открывать только активность уведомлений о половине экрана.
Большое спасибо
Изменить: Я думал, что, возможно, файл xml имеет значение?
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="300dp"
android:layout_marginTop="15dp"
android:background="@color/white"
android:orientation="vertical"
android:paddingTop="12dp"
android:weightSum="20">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/lvChat"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:background="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:listSelector="@android:color/transparent"
android:scrollbars="none"
android:stackFromBottom="false"
android:transcriptMode="alwaysScroll"/>
<LinearLayout
android:id="@+id/chatFooter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ECEFF1"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/sendLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:paddingBottom="@dimen/scale_5dp"
android:paddingTop="@dimen/scale_5dp"
android:weightSum="2">
<LinearLayout
android:layout_width='0dp'
android:layout_height="wrap_content"
android:layout_weight="1.8">
<com.heyjude.heyjudeapp.customview.EditRobotoRegular
android:id="@+id/editChatMsg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/linear_back"
android:hint="Type your message..."
android:imeOptions="actionSend"
android:inputType="textMultiLine|textCapSentences|text"
android:padding="@dimen/scale_5dp"
android:textColor="#5f6060"
android:textColorHint="#5f6060"
android:textSize="@dimen/text_14"/>
</LinearLayout>
<ImageButton
android:id="@+id/ivSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:background="@android:color/transparent"
android:src="@drawable/ic_chat_icon"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/grey_list"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="2">
<Button
android:id="@+id/buttonView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="View"
android:textAllCaps="false"
android:textSize="@dimen/text_22"/>
<Button
android:id="@+id/buttonCancel"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Cancel"
android:textAllCaps="false"
android:textSize="@dimen/text_22"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
Также не уверен, что это актуально, но вот как я создаю ответ
String KEY_TEXT_REPLY = "key_text_reply";
String replyLabel = "Type here";
Intent intent = new Intent(context, NotificationActivity.class);
intent.putExtra(Constants.REQUEST_ID, messageData.taskid);
intent.putExtra(Constants.JUDE_ID, messageData.from);
intent.putExtra(Constants.FROM, Constants.NOTIFICATION);
PendingIntent pendingIntent = PendingIntent.getActivity(
context,
0,
intent,
PendingIntent.FLAG_UPDATE_CURRENT);
RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
.setLabel(replyLabel)
.build();
NotificationCompat.Action replyAction = new NotificationCompat.Action.Builder(
R.drawable.send_button,
"Reply", pendingIntent)
.addRemoteInput(remoteInput)
.build();
builder.addAction(replyAction);