每当用户可见该活动但该消息完全不显示时,我正试图举杯。
我有活动X,在某些时候调用:
SATURDAY
在MainActivity上,我还有很多其他东西:
Intent t = new Intent(this, MainActivity.class);
t.putExtra( "toast", getString(R.string.subscribingInBackground));
t.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(t);
finish();
但是@Override
public void onResume() {
super.onResume();
if (this.adView != null) {
this.adView.resume();
}
String toast = getIntent().getStringExtra("toast");
if (toast != null)
Toast.makeText(this, toast, Toast.LENGTH_LONG).show();
}
始终为空
我在做什么错了?
答案 0 :(得分:0)
您的FLAG_REORDER_TO_FRONT
建议您相信该活动已经存在。如果是这样,该活动将通过onNewIntent()
进行调用,传递给Intent
的{{1}}将会有您的额外收益。 onNewIntent()
返回最初用于创建活动的getIntent()
。
答案 1 :(得分:0)
use this code
package com.example.abc.introscreen;
import android.content.Intent;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent t = new Intent(this,MainActivity.class);
t.putExtra( "toast", "Hello");
startActivity(t);
}
@Override
public void onResume() {
String toast = getIntent().getStringExtra("toast");
if (toast != null)
Toast.makeText(this, toast, Toast.LENGTH_LONG).show();
super.onResume();
}
}
enter code here
答案 2 :(得分:0)
您可以覆盖onNewIntent()
以获取在Intent
中使用的ActivityX
来启动MainActivity
。
从Activity
的{{3}}报价
请注意,
getIntent()
仍返回原始Intent。您可以使用setIntent(Intent)
将其更新为新的Intent。
因此,您可以按以下方式覆盖onNewIntent()
:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
然后将显示您的Toast
。