- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个包含 2 个 fragment 的应用。
在第二个 fragment 中,我有一个“保存”按钮。在此按钮的 onClick
中,我正在尝试发送本地广播:
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
localBroadcastManager.sendBroadcast(localIntent);
}
});
这是我的 Intent :
final LocalBroadcastManager localBroadcastManager = LocalBroadcastManager
.getInstance(Objects.requireNonNull(getContext()));
final Intent localIntent = new Intent("CUSTOM_ACTION");
这样做的目的是让第一个 fragment 拾取它并执行一种方法,将图像保存为带有标题的位图(这就是 2 个 TextView 的用途)。这是我的尝试:
private BroadcastReceiver listener = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent ) {
String data = intent.getStringExtra("DATA");
Toast.makeText(context, data + " received", Toast.LENGTH_SHORT).show();
createAndSaveBitmap(topTextView.getText().toString(), bottomTextView.getText().toString(), memeBitmap, memeCanvas, memePaint, imageView, imageUri);
}
};
public void createAndSaveBitmap(String top, String bottom, Bitmap bitmap,
Canvas canvas, Paint paint, ImageView imageView, Uri imageUri) {
try {
memeBitmap = BitmapFactory.decodeStream(context.getContentResolver().openInputStream(imageUri))
.copy(Bitmap.Config.ARGB_8888, true); }
catch (FileNotFoundException e) { e.printStackTrace(); }
canvas = new Canvas(memeBitmap);
paint = new Paint();
canvas.drawText(top, 0, 0, paint);
canvas.drawText(bottom, 0, memeCanvas.getHeight() - 10, paint);
imageView.setImageBitmap(memeBitmap);
if(bitmap != null){
File file = Environment.getExternalStorageDirectory();
File newFile = new File(file, "test.jpg");
try {
FileOutputStream fileOutputStream = new FileOutputStream(newFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
}
catch (FileNotFoundException e) {e.printStackTrace();}
catch (IOException e) { e.printStackTrace(); }
}
}
当我运行应用程序时,单击“保存”按钮时没有任何反应。不下载图像,也不会崩溃。由于没有错误堆栈跟踪,我看不出哪里出错了。
最佳答案
确保您在接收 fragment 的 onResume
中调用它。
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(
listener,
new IntentFilter("CUSTOM_ACTION")
);
这在 onPause
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(listener);
关于android - 通过 LocalBroadcastManager 调用 fragment 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54634845/
我在将 Eclipse 项目导入 Android Studio 时遇到此错误。它显示了一条建议将库 Gradle: com.android.support:support-core-utils-27.
我正在尝试添加 flutter 的应用程序购买包。这首先造成了 AndroidX 迁移问题。然后在迁移之后我又遇到了一个我不知道如何解决的错误。 我什至没有为应用内购买编写任何代码。就在添加到 pub
我有一个显示产品列表的 fragment 。每个列表项都有一个监视列表按钮,如果未列入监视列表,则显示一个透明的心形图标;如果已列入监视列表,则显示一个红色心形图标。用户可以在列表页面中单击此心形图标
我遵循了 Youtube-Tutorial (https://www.youtube.com/watch?v=y8R2C86BIUc&list=PLgCYzUzKIBE8KHMzpp6JITZ2JxT
我正在尝试从服务向 Activity 发送消息,但由于某种原因它无法正常工作。 Activity @Override protected void onCreate(Bundle saved
在我的应用程序中,我必须从 IntentService 类通知我的 Activity 。为此,我正在使用 LocalBroadcastManager。但是我在我的广播接收器的 onReceive 中没
在我的 Android 应用程序中,我想广播一些通知。在 MainActivity 中,我注册了处理消息的 BroadcastReceiver 但据我所知,如果我不想发送消息,不建议使用全局 Broa
我正在使用新的 Android 构建系统创建一个应用程序,并使用 LocalBroadcastManager 将来自 IntentService 的通知发送回 Activity. 我已将以下产品风格定
我知道虽然 android 允许在 Intent 中传递 Serializable 对象,但出于性能原因不推荐这样做。 但是,如果使用 LocalBroadcastManager,对象是否会被序列化,
如何注册我的 App Widget(主屏幕小部件)以收听通过 LocalBroadcastManager 发送的本地广播消息? 最佳答案 您的应用程序小部件实际上是另一个应用程序进程(例如,主屏幕)中
我试图找到如何在扩展 BaseAdapter 的类中使用 LocalBroadcastManager 的答案,但是经过数小时的研究后,我没有找到正确的答案.我需要从适配器中的 Fragment 调用方
Android 的兼容包支持 LocalBroadcastManager,它可以在我的进程中发送广播。 http://developer.android.com/reference/android/s
我有一个 Activity A 和一个服务 S。它们通过 LocalBroadcastManager 进行通信。 如果 S 调用 sendBroadcast 两次,并依次传递两条消息 M1 和 M2,
我正在 Android 中处理这个项目,其中一个方面需要一个带有前台服务的 CountdownTimer。 Stack Overflow 上的其他一些答案提到 LocalBroadcastManage
你能帮我解决这个问题吗?我已经实现了一个接收器(通过 XML 注册),它监听特定的本地广播,然后启动一个服务进行进一步处理,但不知何故该接收器没有接收任何广播。 虽然另一个通过代码在本地注册的接收器能
我正在尝试连接我的服务和 Activity ,尝试了不同的方法,但没有任何效果。 当应用程序启动时,我在 SplashActivity 中启动 Servise。然后 Service 在后台做一些工作,
接收器可以注册到LocalBroadcastManager吗?在不同的线程中执行?我们使用 LocalBroadcastmanager 注册一个 Intent void registerReceive
我尝试学习 LocalBroadcastManager。在网络上搜索并实现了一个简单的应用程序,其中包含两个 Activity 来执行 LocalBroadcastManager。但它不起作用。我找不
我想知道 LocalBroadcastManager 是否比对订阅事件发布者的 Objects 的方法调用更好,以及开销(如果有)是否值得。 我正在开发一个聊天应用程序,示例过程包括将新收到的原始消息
谁能给我一个例子,说明如何在 Activity 类中正确取消注册 LocalBroadcastManager 接收器? Android 开发人员培训建议这样做: @Override publ
我是一名优秀的程序员,十分优秀!