可见活动后立即显示吐司

时间:2018-07-22 19:04:33

标签: android android-intent activity-lifecycle android-toast

每当用户可见该活动但该消息完全不显示时,我正试图举杯。

我有活动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(); } 始终为空

我在做什么错了?

3 个答案:

答案 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