How to stop displaying message from Toast when Application is closed?

前端 未结 5 1243
自闭症患者
自闭症患者 2020-12-05 20:26

This is my sample code:

public class MainActivity extends Activity {

    Button buttonClick;
    @Override
    protected void onCreate(Bundle savedInstanceS         


        
相关标签:
5条回答
  • 2020-12-05 20:46

    Try this,

    You can cancel Toast showing using this code.

      final Toast toast = Toast.makeText(getApplicationContext(), "This message will    disappear     in half second", Toast.LENGTH_SHORT);
    toast.show();
    
    Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
           @Override
           public void run() {
               toast.cancel(); 
           }
    }, 500);
    
    0 讨论(0)
  • 2020-12-05 20:48

    Try to use finish() in your OnCreate() function on some condition. Hope this will help you.

    0 讨论(0)
  • 2020-12-05 20:56

    You probably want to cancel the Toast whenever your app is not visible, so I would cancel it on the method 'onStop()'.

    Here it goes:

    public class MainActivity extends Activity {
        private Toast toast = null;
        Button buttonClick;
    
        @SuppressLint("ShowToast")
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            toast = Toast.makeText(getApplicationContext(), "", Toast.LENGTH_LONG);
            buttonClick = (Button) findViewById(R.id.buttonClick);
            buttonClick.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    toast.setText("My toast!");
                    toast.show();
                }
            });
        }
    
        @Override
        protected void onStop () {
            super.onStop();
            toast.cancel();
        }
    
    }
    

    Edit: Updated, it should work as OP intended now.

    0 讨论(0)
  • 2020-12-05 21:02

    I want if the application is closed then Toast should also stop displaying the message.

    In your case call cancel() to Toast object to cancel it within onDestroy() method.

    Here is a similar example.

    Updated!

    I tested OP solution but no result.

    .hide() and .cancel() method is available for Toast but seem they are not working. The solution is, you have to create your own custom view which acts like a Toast and then you can cancel all Toasts when the Activity finishes.

    0 讨论(0)
  • 2020-12-05 21:03

    Store a reference to your toast object. In your onDestroy, if the toast is not null then call cancel() on it.

    0 讨论(0)
提交回复
热议问题