Search code examples
javaandroidandroid-fragmentsandroid-activitytoast

Android : Package has already posted 50 toasts. Not showing more.


I am working on an app, where I am using default android Toast, after using a while I am getting error like this:

Package has already posted 50 toasts. Not showing more. Package=com.synapsica

Here is my some working code:

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_opdregistration, container, false);
    ButterKnife.bind(this, view);
    stopProgressBar(progressBar);
    if(mainActivity!=null){
        sharedPreferences = mainActivity.getSharedPreferences(Constants.REGISTRATION_SCREEN_SEARCH, Context.MODE_PRIVATE);
    }


    enterAadharnNumber.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if(actionId== EditorInfo.IME_ACTION_DONE){
                mainActivity.hideSoftKeyboard(enterAadharnNumber);
                if(!enterAadharnNumber.getText().toString().isEmpty()){
                    if(enterAadharnNumber.getText().toString().length() == 10 || enterAadharnNumber.getText().toString().length() == 12){
                        progressBar.setVisibility(View.VISIBLE);
                        if(!enterAadharnNumber.getText().toString().isEmpty()){
                            if(enterAadharnNumber.getText().toString().length()==10){
                                Presenter.getInstance().addModel(Constants.SEARCH_PHONE_NUMBER, enterAadharnNumber.getText().toString());
                            }
                        }
                        patientRegistrationActivity.searchPatient(enterAadharnNumber.getText().toString(), "OPD", "search", progressBar);
                    } else{
                        Toast.makeText(patientRegistrationActivity, "Enter valid phoneNumber or aadhar Number", Toast.LENGTH_SHORT).show();
                    }
                } else{
                    Toast.makeText(patientRegistrationActivity, "Enter valid phoneNumber or aadhar Number", Toast.LENGTH_SHORT).show();
                }
            }
            return false;
        }
    });

    return view;
}

Solution

  • It seems to be a limit imposed by the system, take a look:

    https://android.googlesource.com/platform/frameworks/base/+/f76a50c/services/java/com/android/server/NotificationManagerService.java#477

    I recommend you to use a in-app notification (can be a SnackBar for example) to show your messages.