我有Activity
消息列表。当新消息到达时,我想在列表中显示它。我想使用相同的Activity
实例,而不是为每条新消息创建新的。
但是我的Activity没有打开(我没有看到onCreate()
方法的日志消息。)
我有Activity
代码:
public class MessagesListDialogActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
super.onCreate(savedInstanceState);
Log.e("MESSAGE", "onCreate()");
// ... create UI
handleIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
handleIntent(intent);
}
private void handleIntent(@NonNull Intent intent) {
// obtain the message and add to list on UI
}
}
这是我Launcher
班的代码:
public static void showMessage(@NonNull Context context, @NonNull Message message) {
final Intent intent = new Intent(context, MessagesListDialogActivity.class);
BundleUtil.setMessage(intent, message);
context.startActivity(intent);
}
这一行来自Manifest
:
<activity android:name=".features.messages.list.MessagesListDialogActivity"
android:screenOrientation="portrait"
android:theme="@style/DialogTheme"
android:launchMode="singleTop"/>
我尝试使用不同的launchMode参数,例如 singleTask 和 singleInstance ,但它不起作用。
答案 0 :(得分:0)
感谢您的关注。经过多次尝试修复它后,我尝试使用这个标志:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP);
这对我有帮助。谢谢你,希望我的经验能帮助你。