Comments (14)
A workaround is to call Crouton.clearCroutonsForActivity(this);
within onDestroy
of your activity like so:
protected void onDestroy() {
Crouton.clearCroutonsForActivity(this);
super.onDestroy();
}
from crouton.
Concerning the workaround: If I create and show a Crouton (default usage) in a Fragment, should I anyway use the onDestroy() method of the activity or the one of the fragment?
from crouton.
If you show it within the Fragment, calling it in the Fragment's onDestroy() is the best solution.
from crouton.
If by "show it" you mean calling the "show()" method, yes I do it in the fragment. But if you mean where I show it in the layout hierarchy, I am not sure.
I call the following from within my fragment:
Crouton.makeText(getSherlockActivity(), "...", Style.ALERT).show();
Since I do not attach the crouton to a certain view of the fragment layout explicitly, I guess it is attached onto the activity. Therefore I ask myself if the fragment's or the activity's "onDestroy()" should be used. Does it depend on where "show()" was called from (activity or fragment), or to which view (activity, or explicit view in fragment layout) the crouton is attached to?
from crouton.
Sorry, my answer was not clear. If you have attached a Crouton to a Fragment's ViewGroup you want to call Crouton.clearCroutonsForActivity(getActivity());
.
It does not matter where the show()
method is being called, but only where your Crouton is attached.
from crouton.
Please remember as of HC3.2+ orientation changes do not destroy and recreate activities. So although this may be a work around pre 3.2. It probably wont work on newer devices.
from crouton.
Thanks a lot.
from crouton.
Using ActivityLifecycleCallbacks
solves the issue for API 14+.
from crouton.
- you should hold a weak reference to the activity and when it is destroyed, to can remove them.
- Check the queue if the croutons is context sensitive, so crouton on top, which cannot be displayed should be ignored and the next should be handled.
from crouton.
In my testing, I found that calling Crouton.cancelAllCroutons(); is very important. I had an Android app running on 2.3 Genymotion, and if I opened a crouton then clicked a button that opened a web site, the phone would navigate back out of the web browser into the app to display the crouton finishing animation where it pops back up and disappears.
from crouton.
That sounds rather odd. I have not ever experienced something like this. Does it happen with Android versions higher than Gingerbread as well?
from crouton.
when startActivity(), better to use
@Override
protected void onStop() {
super.onStop();
Crouton.clearCroutonsForActivity(this);
}
from crouton.
Note there is a Concurrency issue when following this direction. If placed in onDestroy, Crouton.cancelAllCroutons() can cancel any croutons that are supposed to be showing in the next activity. Better advice is to clear for the activity, as above and save CancelAll for an application ending action
from crouton.
See README for further info.
from crouton.
Related Issues (20)
- Where can I find the latest jar?
- Not able to use a white background HOT 4
- Show at bottom HOT 1
- Push view down with crouton HOT 1
- Cant use a custom Style for Crouton
- Memory leak in DefaultAnimationsBuilder HOT 3
- memory leak in DefaultAnimationsBuilder.java HOT 5
- not an issue :) but a question about Snackbar. HOT 2
- Croupton not works on android version 16 HOT 2
- Crouton with custom view and match_parent height HOT 2
- No constructors works HOT 1
- How to use in Fragment? HOT 1
- change position HOT 3
- Visual glitch when using a navigation drawer HOT 2
- show crouton below Toolbar HOT 1
- not working... after changing app theme.
- SpannableString or Html tags ? HOT 2
- Crouton disable auto hide HOT 1
- Crouton Not work when app come background nearly after 2 mins HOT 2
- How to use Crouton.makeText in AsyncTask
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crouton.