파일이 성공적으로 다운로드되면 조각에서 목록보기를 업데이트해야합니다. 그래서 내 다운로드 관리자의 브로드 캐스트 리시버에 나는이 새로운 방송 수신기를 등록 : 다음브로드 캐스트 수신기의 조각에서 목록보기 업데이트
IntentFilter filter = new IntentFilter("CONTENTS_NOTIFICATION");
getActivity().getApplicationContext().registerReceiver(myReceiver, filter);
:
Intent intent = new Intent();
intent.setAction("CONTENTS_NOTIFICATION");
context.sendBroadcast(intent);
내가 수신기를 등록하기 위해 다음 코드를 추가 onCreateView 내 조각에서
public void onDestroyView() {
super.onDestroyView();
getActivity().getApplicationContext().unregisterReceiver(myReceiver);
}
,536,913,632 :
과 끝에
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);
}
};
10
두 개의 서로 다른 Fragment에 대해 두 개의 브로드 캐스트 리시버를 추가해야합니다. 첫 번째 문제는 모두 정상적으로 작동합니다. 응용 프로그램에서 사용자가 조각에 있다면, 업데이트, 두 번째 조각에 나는 이러한 오류가있어 :
03-15 07:32:40.474: E/AndroidRuntime(1692): FATAL EXCEPTION: main
03-15 07:32:40.474: E/AndroidRuntime(1692): java.lang.RuntimeException: Error receiving broadcast Intent { act=CONTENTS_NOTIFICATION flg=0x10 } in [email protected]
03-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.NullPointerException
03-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$0(ContentsFragment.java:111)
03-15 07:32:40.474: E/AndroidRuntime(1692): at sample.actionscontentview.fragment.ContentsFragment$1.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에 문제가 있지만 방송 수신기에서 호출하지 않으면 동일한 기능이 조각 내에서 잘 작동한다고 말합니다.
이 두 조각 사이에서 생각할 수있는 유일한 차이점은 응용 프로그램을 시작할 때 열린 첫 번째 업데이트가 있다는 것입니다.
줄 번호는 무엇입니까? 194 및 populateListView에 대한 코드를 게시 – Atrix1987
내 나쁜 ... 오류 populatelistView에, 특히 내가 잘못된보기를 통과했다! 그래서 코드는 잘 작동합니다! – phcaze