Error[8]: Undefined offset: 8, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述如果文件成功下载,我必须更新片段中的列表视图.所以在我的下载管理器BroadcastReceiver我注册这个新的广播接收器: Intent intent = new Intent();intent.setAction("CONTENTS_NOTIFICATION");context.sendBroadcast(intent); 在我的onCreateView的片段中,我添加以下代码以注册接收 如果文件成功下载,我必须更新片段中的列表视图.所以在我的下载管理器broadcastReceiver我注册这个新的广播接收器:
Intent intent = new Intent();intent.setAction("CONTENTS_NOTIFICATION");context.sendbroadcast(intent);

在我的onCreateVIEw的片段中,我添加以下代码以注册接收者:

IntentFilter filter = new IntentFilter("CONTENTS_NOTIFICATION");getActivity().getApplicationContext().registerReceiver(myReceiver,filter);

然后:

private broadcastReceiver myReceiver = new broadcastReceiver() {        @OverrIDe        public voID onReceive(Context context,Intent intent) {            sqliteDatabase db = DatabaseManager.getInstance(getActivity()).getWritableDatabase();              c = SelectedExperIEnce.getSelectedExperIEnces(db);              String ID_esperIEnza = "Selected ExperIEnce";              if (c.getCount() != 0) {                  ID_esperIEnza = c.getString(c.getColumnIndex(SelectedExperIEnce.ID_ESPERIENZA));              }            populateListvIEw(v,ID_esperIEnza);        }    };

最后:

public voID onDestroyVIEw() {      super.onDestroyVIEw();      getActivity().getApplicationContext().unregisterReceiver(myReceiver);}

我必须为两个不同的片段添加两个广播接收器.在第一个,所有的工作都很好.如果在应用程序中用户在片段上,则会更新,而在第二个片段上,我收到以下错误:

03-15 07:32:40.474: E/AndroIDRuntime(1692): FATAL EXCEPTION: main03-15 07:32:40.474: E/AndroIDRuntime(1692): java.lang.RuntimeException: Error receiving broadcast Intent { act=CONTENTS_NOTIFICATION flg=0x10 } in sample.actionscontentvIEw.fragment.ContentsFragment@418e085003-15 07:32:40.474: E/AndroIDRuntime(1692):     at androID.app.LoadedApk$Receiverdispatcher$Args.run(LoadedApk.java:768)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at androID.os.Handler.handleCallback(Handler.java:725)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at androID.os.Handler.dispatchMessage(Handler.java:92)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at androID.os.Looper.loop(Looper.java:137)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at androID.app.ActivityThread.main(ActivityThread.java:5191)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at java.lang.reflect.Method.invokeNative(Native Method)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at java.lang.reflect.Method.invoke(Method.java:511)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:562)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at dalvik.system.NativeStart.main(Native Method)03-15 07:32:40.474: E/AndroIDRuntime(1692): Caused by: java.lang.NullPointerException03-15 07:32:40.474: E/AndroIDRuntime(1692):     at sample.actionscontentvIEw.fragment.ContentsFragment.populateListvIEw(ContentsFragment.java:194)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at sample.actionscontentvIEw.fragment.ContentsFragment.access
EventBus.getDefault().post(YourData.Downloaded);
(ContentsFragment.java:111)03-15 07:32:40.474: E/AndroIDRuntime(1692): at sample.actionscontentvIEw.fragment.ContentsFragment.onReceive(ContentsFragment.java:107)03-15 07:32:40.474: E/AndroIDRuntime(1692): at androID.app.LoadedApk$Receiverdispatcher$Args.run(LoadedApk.java:758)03-15 07:32:40.474: E/AndroIDRuntime(1692): ... 9 more

并且代码是一样的!我不明白为什么它不工作它表示populateListVIEw有一个问题,但是如果没有从广播接收器中调用,则该片段中相同的功能工作正常.

我认为在这两个片段之间唯一的区别是,更新的工作原理是在应用程序启动时打开的第一个.

解决方法 尝试使用GreenRobot https://github.com/greenrobot/EventBus的EventBus

当您的文件成功下载后,您可以发布活动

EventBus.getDefault().register(this);

您的片段将注册接收事件,最好使用onStart()方法

public voID onEvent(Data.State) {}

它将在onEvent方法中接收事件:

[+++]

然后您可以轻松更新列表视图.您也可以通过onStop()方法取消注册接收事件.您可以将数据保存在应用程序中或存储.这是非常容易和一个很好的解决方案.希望它有帮助.您可以为此事件注册多少个片段,因此一旦EventBus发布事件,所有可用的片段都将被注册,将会收到此事件.

总结

以上是内存溢出为你收集整理的android – 从广播接收器更新片段中的列表全部内容,希望文章能够帮你解决android – 从广播接收器更新片段中的列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
android – 从广播接收器更新片段中的列表_app_内存溢出

android – 从广播接收器更新片段中的列表

android – 从广播接收器更新片段中的列表,第1张

概述如果文件成功下载,我必须更新片段中的列表视图.所以在我的下载管理器BroadcastReceiver我注册这个新的广播接收器: Intent intent = new Intent();intent.setAction("CONTENTS_NOTIFICATION");context.sendBroadcast(intent); 在我的onCreateView的片段中,我添加以下代码以注册接收 如果文件成功下载,我必须更新片段中的列表视图.所以在我的下载管理器broadcastReceiver我注册这个新的广播接收器:
Intent intent = new Intent();intent.setAction("CONTENTS_NOTIFICATION");context.sendbroadcast(intent);

在我的onCreateVIEw的片段中,我添加以下代码以注册接收者:

IntentFilter filter = new IntentFilter("CONTENTS_NOTIFICATION");getActivity().getApplicationContext().registerReceiver(myReceiver,filter);

然后:

private broadcastReceiver myReceiver = new broadcastReceiver() {        @OverrIDe        public voID onReceive(Context context,Intent intent) {            sqliteDatabase db = DatabaseManager.getInstance(getActivity()).getWritableDatabase();              c = SelectedExperIEnce.getSelectedExperIEnces(db);              String ID_esperIEnza = "Selected ExperIEnce";              if (c.getCount() != 0) {                  ID_esperIEnza = c.getString(c.getColumnIndex(SelectedExperIEnce.ID_ESPERIENZA));              }            populateListvIEw(v,ID_esperIEnza);        }    };

最后:

public voID onDestroyVIEw() {      super.onDestroyVIEw();      getActivity().getApplicationContext().unregisterReceiver(myReceiver);}

我必须为两个不同的片段添加两个广播接收器.在第一个,所有的工作都很好.如果在应用程序中用户在片段上,则会更新,而在第二个片段上,我收到以下错误:

03-15 07:32:40.474: E/AndroIDRuntime(1692): FATAL EXCEPTION: main03-15 07:32:40.474: E/AndroIDRuntime(1692): java.lang.RuntimeException: Error receiving broadcast Intent { act=CONTENTS_NOTIFICATION flg=0x10 } in sample.actionscontentvIEw.fragment.ContentsFragment@418e085003-15 07:32:40.474: E/AndroIDRuntime(1692):     at androID.app.LoadedApk$Receiverdispatcher$Args.run(LoadedApk.java:768)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at androID.os.Handler.handleCallback(Handler.java:725)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at androID.os.Handler.dispatchMessage(Handler.java:92)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at androID.os.Looper.loop(Looper.java:137)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at androID.app.ActivityThread.main(ActivityThread.java:5191)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at java.lang.reflect.Method.invokeNative(Native Method)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at java.lang.reflect.Method.invoke(Method.java:511)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:562)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at dalvik.system.NativeStart.main(Native Method)03-15 07:32:40.474: E/AndroIDRuntime(1692): Caused by: java.lang.NullPointerException03-15 07:32:40.474: E/AndroIDRuntime(1692):     at sample.actionscontentvIEw.fragment.ContentsFragment.populateListvIEw(ContentsFragment.java:194)03-15 07:32:40.474: E/AndroIDRuntime(1692):     at sample.actionscontentvIEw.fragment.ContentsFragment.access
EventBus.getDefault().post(YourData.Downloaded);
(ContentsFragment.java:111)03-15 07:32:40.474: E/AndroIDRuntime(1692): at sample.actionscontentvIEw.fragment.ContentsFragment.onReceive(ContentsFragment.java:107)03-15 07:32:40.474: E/AndroIDRuntime(1692): at androID.app.LoadedApk$Receiverdispatcher$Args.run(LoadedApk.java:758)03-15 07:32:40.474: E/AndroIDRuntime(1692): ... 9 more

并且代码是一样的!我不明白为什么它不工作它表示populateListVIEw有一个问题,但是如果没有从广播接收器中调用,则该片段中相同的功能工作正常.

我认为在这两个片段之间唯一的区别是,更新的工作原理是在应用程序启动时打开的第一个.

解决方法 尝试使用GreenRobot https://github.com/greenrobot/EventBus的EventBus

当您的文件成功下载后,您可以发布活动

EventBus.getDefault().register(this);

您的片段将注册接收事件,最好使用onStart()方法

public voID onEvent(Data.State) {}

它将在onEvent方法中接收事件:

然后您可以轻松更新列表视图.您也可以通过onStop()方法取消注册接收事件.您可以将数据保存在应用程序中或存储.这是非常容易和一个很好的解决方案.希望它有帮助.您可以为此事件注册多少个片段,因此一旦EventBus发布事件,所有可用的片段都将被注册,将会收到此事件.

总结

以上是内存溢出为你收集整理的android – 从广播接收器更新片段中的列表全部内容,希望文章能够帮你解决android – 从广播接收器更新片段中的列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1132317.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存