我认为这个问题可能很简单,但我没有找到任何解决办法,
我在Android中有任何方式,如果任何一个活动调用onPause()
,我需要显示Toast消息或任何需要显示的通知。一般情况下,我希望在活动调用onPause()
时收到通知,但我需要在一个地方,因为我可能有15个活动,我不想在所有活动中添加它。
例如:如果我在任何一个活动调用onPause
时有活动,我需要收到通知,但通知代码应该在一个地方,我们不应添加任何代码行onPause()
是它可以做到这一点。
感谢。
答案 0 :(得分:1)
创建一个baseActivity,例如:
open class BaseActivity : AppCompatActivity() {
override fun onPause() {
super.onPause()
Toast.makeText(this, "notified", Toast.LENGTH_SHORT).show()
}
}
然后,您可以在活动中扩展它并处理BaseActivity中的on pause调用
答案 1 :(得分:0)
如果您的minSdkVersion
> = 14,则可以使用Application.ActivityLifecycleCallbacks
:ActivityLifecycleCallbacks
你必须定义一个自定义Application
类,然后你可以注册这个回调:
public class MyApplication extends Application {
private class LifecycleCallbacks implements Application.ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(final Activity activity, final Bundle savedInstanceState) {
//nothing to do
}
@Override
public void onActivityDestroyed(final Activity activity) {
//nothing to do
}
@Override
public void onActivityPaused(final Activity activity) {
// TODO Do your stuff, e.g. show toast.
}
@Override
public void onActivityResumed(final Activity activity) {
//nothing to do
}
@Override
public void onActivitySaveInstanceState(final Activity activity, final Bundle outState) {
//nothing to do
}
@Override
public void onActivityStarted(final Activity activity) {
}
@Override
public void onActivityStopped(final Activity activity) {
}
}
private final LifecycleCallbacks callbacks;
public void onCreate() {
super.onCreate();
callbacks = new LifecycleCallbacks();
application.registerActivityLifecycleCallbacks(callbacks);
}
}
答案 2 :(得分:0)
创建一个BaseActivity,其中包含您要在所有其他活动中使用的所有方法。
然后使用BaseActivity扩展每个活动以调用onPause()方法。