启动新活动时出错

时间:2010-12-07 07:00:50

标签: android

在我的应用程序中,我在Tabview一侧显示List,在一个选项卡中,当我尝试启动新活动onclick列表视图触摸事件时。我想在网络视图中开始一项新活动。

showNewsListView.setAdapter(listAdapter);
 showNewsListView.setOnItemClickListener(new OnItemClickListener(){
  public void onItemClick(AdapterView<?> arg0, View arg1, int position,
        long arg3) {
            Log.v("status ","tab on   position"+position);
           Intent myIntent = new Intent(BizTab.this, MainView.class);
           startActivity(myIntent);

          }
          });

 getUrlData(baseUrl);

 }

如果我运行这么多代码应用程序崩溃所以我只是找到它的解决方案,我应该在asyncrouniously开始一个新的活动,所以现在我这样做

    showNewsListView.setAdapter(listAdapter); 
    showNewsListView.setOnItemClickListener(new OnItemClickListener(){
     public void onItemClick(AdapterView arg0, View arg1, int position, long arg3) { Log.v("status ","tab on position"+position);

         new ShowFullNews().execute();
      }
      });
 getUrlData(baseUrl);

 }`

`showNewsListView.setAdapter(listAdapter);
 showNewsListView.setOnItemClickListener(new OnItemClickListener(){
  public void onItemClick(AdapterView<?> arg0, View arg1, int position,
        long arg3) {
            Log.v("status ","tab on   position"+position);

         new ShowFullNews().execute();
      }
      });
 getUrlData(baseUrl);

 }`

然后我的代码崩溃了,只是给出了这两个警告

没有给出错误

如果我在onTouch和post执行的两个地方开始一个新的活动,那么我的代码就是woking但是它首先显示屏幕,然后它自动进行并刷新该屏幕,这看起来不太好。所以如何避免它。请帮助我,并忽略语法错误,我的工作代码是

public void onItemClick(AdapterView<?> arg0, View arg1, int position,
        long arg3) {
            Log.v("status ","tab on   position"+position);

            //set bundle to send data into other activity
            b.putInt("total", 10);
            b.putInt("position",position);
            b.putStringArray("allurls", allsNewsUrls);
            b.putString("returnname", "BizTab");
            b.putString("footertext","Biz");
            b.putInt("tabid", 3);

           Intent myIntent = new Intent(BizTab.this, MainView.class);
            myIntent.putExtras(b);
            startActivity(myIntent);
            new ShowFullNews().execute();
      }
      });

 protected void onPostExecute(Long result) { try { 
   Intent myIntent2 = new Intent(BizTab.this, MainView.class);

 startActivity(myIntent2);


} catch (Exception e) {
 Log.v("error","error in starting new activity");
 e.printStackTrace();
}

  }`

日志生成和我的应用程序自动关闭。

12-07 11:55:18.684: WARN/InputManagerService(72): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44067388
12-07 11:55:20.792: VERBOSE/status(419): tab on   position0
12-07 11:55:20.814: INFO/ActivityManager(72): Starting activity: Intent { cmp=org.nuvus/.MainView (has extras) }
12-07 11:55:20.872: DEBUG/PhoneWindow(419): couldn't save which view has focus because the focused view com.android.internal.policy.impl.PhoneWindow$DecorView@43ea45d8 has no id.
12-07 11:55:21.023: VERBOSE/status(419): mainView oncreate called
12-07 11:55:21.452: VERBOSE/status(419): onStartcalled
12-07 11:55:21.962: INFO/ActivityManager(72): Displayed activity org.nuvus/.MainView: 1072 ms (total 1072 ms)
12-07 11:55:22.082: INFO/AndroidRuntime(419): AndroidRuntime onExit calling exit(0)
12-07 11:55:22.173: INFO/ActivityManager(72): Process org.nuvus (pid 419) has died.
12-07 11:55:22.183: INFO/WindowManager(72): WIN DEATH: Window{43fe6f30 org.nuvus/org.nuvus.Main paused=true}
12-07 11:55:22.202: INFO/WindowManager(72): WIN DEATH: Window{440f9620 org.nuvus/org.nuvus.MainView paused=false}
12-07 11:55:22.283: INFO/UsageStats(72): Unexpected resume of com.android.launcher while already resumed in org.nuvus
12-07 11:55:22.303: WARN/InputManagerService(72): Got RemoteException sending setActive(false) notification to pid 419 uid 10032

请帮帮我......

1 个答案:

答案 0 :(得分:2)

而不是:

Intent myIntent = new Intent(BizTab.this, MainView.class);
myIntent.putExtras(b);
startActivity(myIntent);

尝试:

Intent myIntent = new Intent(getBaseContext(), BizTab.this); <!-- or MainView.class-->
myIntent.putExtras(b);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(myIntent);