pra*_*raj 4 android broadcastreceiver android-support-library snackbar android-support-design
Snackbars通过在屏幕底部显示简短消息来提供有关操作的轻量级反馈.Snackbars可以包含一个动作.
Android还提供了一个toast,主要用于系统消息传递.Toasts与snackbars类似,但不包含动作,不能在屏幕上滑动.
我的问题
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class TestReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
Toast.makeText(context, "status", Toast.LENGTH_LONG).show();
}
}
Run Code Online (Sandbox Code Playgroud)
难道是更多钞票来显示Snackbar的BroadcastReceiver一样Toast?
是否可以像在Toast中一样在BroadcastReceiver中显示snakbars?
一个BroadcastReceiver由活动或片段注册,通过registerReceiver(),可以要求活动或片段显示的小吃店.
清单注册BroadcastReceiver没有UI,因此没有地方可以显示小吃吧.它可以做的是在进程中的事件总线上发布一个事件(例如,LocalBroadcastManagergreenrobot的EventBus,Square的Otto),让你的前景中的任何UI知道接收到广播.如果UI层接收到消息,则该活动或片段可以显示快餐栏.如果事件总线事件未被提取,您可以Notification在适当的时候显示为后备事件.
我的工作代码....
public abstract class TestReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
onNetworkChange();
}
protected abstract void onNetworkChange();
}
Run Code Online (Sandbox Code Playgroud)
在主要活动中
public class MainActivity extends Activity {
public void onCreate() {
... mReceiver = new TestReceiver () {
@Override
protected void onNetworkChange() {
snackbar = Snackbar.make(Clayout, "Please check your internet connection and try again", Snackbar.LENGTH_SHORT);
snackbar.setAction("X", snackbarClickListener);snackbar.setActionTextColor(Color.GREEN);
ColoredSnackbar coloredsnakbar=new ColoredSnackbar();
coloredsnakbar.confirm(snackbar).show();
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3980 次 |
| 最近记录: |