【问题标题】:Thread start was failing in the ActivityActivity 中的线程启动失败
【发布时间】:2013-09-21 16:46:42
【问题描述】:
Thread th = new Thread(){
    public void run()
    {
        try{
            sleep(5000);
        }
        catch(InterruptedException e){
            e.printStackTrace();
            
        }
        finally{    
            Intent openMainActivity = new Intent("com.askselva.simple.MENU");
            startActivity(openMainActivity);
        }
        
    }   
};
th.start();               //Error -1

错误 1:令牌“开始”的语法错误,标识符应在之后 这个令牌

【问题讨论】:

  • 你不能说“只是挂在那里”。这不是 PHP ......不太清楚你试图用这个实现什么,请添加一些细节来澄清你想要做什么。
  • th.start();放入 onCreate() 方法

标签: java android multithreading syntax token


【解决方案1】:

你也可以试试这个:)

package com.askselva.simple;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
public class Splash extends Activity{
MediaPlayer ourSong;
  @Override
  protected void onCreate(Bundle selvaLovesKumar){
    // TODO Auto-generated method stub
    super.onCreate(selvaLovesKumar);
    setContentView(R.layout.splash);
    ourSong=MediaPlayer.create(Splash.this, R.raw.airtel);
    ourSong.start();

    new Thread(new Runnable()){
      public void run(){
        try{
            sleep(5000);
        }
        catch(InterruptedException e){
            e.printStackTrace();
        }
        finally{    
            Intent openMainActivity = new Intent("com.askselva.simple.MENU");
            startActivity(openMainActivity);
        }
      } 
    }.start();        
  }
  @Override
  protected void onPause(){
    // TODO Auto-generated method stub
    super.onPause();
    finish();
    ourSong.release();
  }
 }

【讨论】:

    【解决方案2】:

    这可能对你有帮助...

    在 onCreate 方法中

    Thread currentThread = new Thread(this);
    currentThread.start();
    

    创建后

    public void run() {
        try {
            Thread.sleep(4000);
            threadHandler.sendEmptyMessage(0);
        } catch (InterruptedException e) {
            //don't forget to deal with the Exception !!!!!
        }
    }
    
    private Handler threadHandler = new Handler() {
         public void handleMessage(android.os.Message msg) {      
            Intent in = new Intent(getApplicationContext(),****.class);
            startActivity(in);
        }
    };  
    

    【讨论】:

      【解决方案3】:

      试试这个

      package com.askselva.simple;
      import android.app.Activity;
      import android.content.Intent;
      import android.media.MediaPlayer;
      import android.os.Bundle;
      public class Splash extends Activity {
          MediaPlayer ourSong;
          @Override
          protected void onCreate(Bundle selvaLovesKumar) {
              super.onCreate(selvaLovesKumar);
              setContentView(R.layout.splash);
              ourSong=MediaPlayer.create(Splash.this, R.raw.airtel);
              ourSong.start();
      
              Thread th = new Thread(){
              public void run()
              {
                  try{
                      sleep(5000);
                  }
                  catch(InterruptedException e){
                      e.printStackTrace();
                  }
                  finally{    
                      Intent openMainActivity = new Intent("com.askselva.simple.MENU");
                      startActivity(openMainActivity);
                  }
              }   
          };
          th.start();  
      }
      
      @Override
      protected void onPause() {
          super.onPause();
          finish();
          ourSong.release();
          }
      }
      

      【讨论】:

        【解决方案4】:

        您的th.start(); 语句应该出现在您的Activity 类的某个方法中。你不能把它放在活动的某个地方。

        在你的情况下,它可以进入 OnCreate() 方法,但线程创建必须在你 start 那里的线程之前完成。

        【讨论】:

        • 这不应该只是评论吗?
        • 这是问题的答案。它需要以某种方式进行!为什么应该是评论?
        • 答案是告诉它必须采用哪个方法。这是问题而不是解决方案
        【解决方案5】:

        问题是,你不应该在你的类方法之外有你的th.start()。你不能像那样把它随意放在你的班级里。

        【讨论】:

          猜你喜欢
          • 2017-06-11
          • 2018-03-29
          • 2023-01-25
          • 1970-01-01
          • 1970-01-01
          • 2020-08-08
          • 2015-04-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多