我需要一个帮助我的列表视图我正面临着一个问题,即获取新数据后,每3秒,因为我问你工作得很好now.but有一个问题,当我点击列表行(启动新活动,显示访问者详细信息页面)我正在传递一些数据从列表视图行到另一个activity.my的问题是,列表视图获取新数据后,每3秒,当我点击列表行,然后下一个活动开始,并显示访问者详细信息页面的案例更新方法被调用之前,单击列表视图行,但如果我点击该行,同时收到新数据,并添加到行,应用程序崩溃。
我应该怎么做,这样我的应用程序才不会崩溃,并且在单击行或行的按钮时工作正常。我将与该行相关的sessiontext和iptext传递给下一个活动。
我的类代码遵循下面给出的链接。http://www.coderanch.com/t/568877/Android/Mobile/android-custom-list-view-position#2585198 eranch.com/t/568803/Android/Mobile/start-new-activity-when-click
当我单击listiview行更新列表方法时,我更希望我的应用程序停止并启动新活动,而当我从新活动返回时,更新方法再次启动,这怎么可能呢?
当我返回到下一个活动时,我的logcat如下所示.............
02-29 12:53:53.463: E/AndroidRuntime(5066): FATAL EXCEPTION: main
02-29 12:53:53.463: E/AndroidRuntime(5066): java.lang.RuntimeException: Unable to resume activity {com.live2support/com.live2support.L2STest}: java.lang.IllegalStateException: Timer was cancelled
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3128)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3143)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2059)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.os.Looper.loop(Looper.java:123)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.ActivityThread.main(ActivityThread.java:4627)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at java.lang.reflect.Method.invokeNative(Native Method)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at java.lang.reflect.Method.invoke(Method.java:521)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at dalvik.system.NativeStart.main(Native Method)
02-29 12:53:53.463: E/AndroidRuntime(5066): Caused by: java.lang.IllegalStateException: Timer was cancelled
02-29 12:53:53.463: E/AndroidRuntime(5066):     at java.util.Timer.scheduleImpl(Timer.java:566)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at java.util.Timer.schedule(Timer.java:485)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at com.live2support.BaseActivity.onStart(BaseActivity.java:157)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at com.live2support.BaseActivity.onRestart(BaseActivity.java:932)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.Instrumentation.callActivityOnRestart(Instrumentation.java:1139)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.Activity.performRestart(Activity.java:3805)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.ActivityThread.performRestartActivity(ActivityThread.java:3477)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:160)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.LocalActivityManager.dispatchResume(LocalActivityManager.java:518)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.ActivityGroup.onResume(ActivityGroup.java:58)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.Activity.performResume(Activity.java:3823)
02-29 12:53:53.463: E/AndroidRuntime(5066):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118)当我点击listrow应用程序崩溃时,在这种情况下,新的数据更新调用开始,我清除了我的事件的计时器和代码,就像这样,有时会使我的应用程序崩溃......
新建(convertView.setOnClickListener OnClickListener(){
                    public void onClick(View v) {
                        timer.purge();
                        if(SessionText.get(position)!=null&&IPText.get(position)!=null){
                        Intent i=new Intent(BaseActivity.this,VisitorDetail.class);
                        i.putExtra("ID", id);
                        i.putExtra("Position",position);
                        i.putExtra("From", from);
                        i.putExtra("SessionText", SessionText.get(position));
                        i.putExtra("IPTEXT",IPText.get(position));
                        startActivity(i);
                        }
                        else{
                            timer.schedule(new TimerTask() {
                                public void run() {
                                    TimerMethod();
                                }
                            }, 0, 3000); 
                        }
                    }});任何人都可以帮助我解决这个问题...............
发布于 2012-02-29 14:08:13
取消计时器计时器,这样当你点击一个项目时,它不会更新数据,如果在点击项目后需要计时器,在调用startActivity之后,再次启动计时器。
发布于 2012-02-29 14:12:59
使用java同步块
https://stackoverflow.com/questions/9494241
复制相似问题