Java 从BackgroundTask方法获取数组到另一个活动

Java 从BackgroundTask方法获取数组到另一个活动,java,android,arrays,android-activity,Java,Android,Arrays,Android Activity,我是Java/ADT的新手,我正在尝试获取一个从“活动A”到“活动B”的数组。该应用程序从网页中获取信息,然后将其保存在一对数组中并显示信息。我想单击“转到图形”按钮(调用viewallday())重定向到活动B,活动B将显示包含所有这些信息的图形 问题是它们是一个自刷新阵列(1秒刷新),当应用程序处于图形模式(活动B)时,它们不想失去此功能。有什么办法吗 提前感谢大家,我从这个网站学到了很多东西 更新:我正试图用单例模式来实现这一点。但LogCat说: 02-26 22:21:59.300:E

我是Java/ADT的新手,我正在尝试获取一个从“活动A”到“活动B”的数组。该应用程序从网页中获取信息,然后将其保存在一对数组中并显示信息。我想单击“转到图形”按钮(调用viewallday())重定向到活动B,活动B将显示包含所有这些信息的图形

问题是它们是一个自刷新阵列(1秒刷新),当应用程序处于图形模式(活动B)时,它们不想失去此功能。有什么办法吗

提前感谢大家,我从这个网站学到了很多东西

更新:我正试图用单例模式来实现这一点。但LogCat说:

02-26 22:21:59.300:E/AndroidRuntime(2677):致命异常:主 02-26 22:21:59.300:E/AndroidRuntime(2677):java.lang.RuntimeException:无法启动活动组件信息{com.example.Chispa/com.example.Chispa.activity_allday}:android.os.NetworkOnMainThreadException 02-26 22:21:59.300:E/AndroidRuntime(2677):由以下原因引起:android.os.NetworkOnMainThreadException

更新2:终于找到了!!以下是我使用的代码:

以下是活动A的代码:

public class MainActivity extends Activity {

private TextView tvmax, tvmid, tvmin, tvactualval,tvvaloractual,tvdate;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tvdate=(TextView)findViewById(R.id.tvdate);
        tvvaloractual=(TextView)findViewById(R.id.tvvaloractual);
        tvmax=(TextView)findViewById(R.id.tvmaximo);
        tvmid=(TextView)findViewById(R.id.tvmedio);
        tvmin=(TextView)findViewById(R.id.tvminimo);

        new BackGroundTask().execute();

        callAsynchronousTask();

    }


    public void callAsynchronousTask() {
        final Handler handler = new Handler();
        Timer timer = new Timer();
        TimerTask doAsynchronousTask = new TimerTask() {       
            @Override
            public void run() {
                handler.post(new Runnable() {
                    public void run() {       
                        try {
                            BackGroundTask performBackgroundTask = new BackGroundTask();
                            // PerformBackgroundTask this class is the class that extends AsynchTask 
                            performBackgroundTask.execute();
                        } catch (Exception e) {
                            // TODO Auto-generated catch block
                        }
                    }
                });
            }
        };
        timer.schedule(doAsynchronousTask, 0, 1000); //execute in every 1000 ms
    }




    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public class Pair
    {
        public String[] bar;
        public String[] values;
    }

       public void viewallday(View view) {



            Intent intent = new Intent(MainActivity.this, Activity_allday.class);


            startActivity(intent);



        }  





    class BackGroundTask extends AsyncTask<Void, Void, Pair> {


        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }



        public String[] getValuesGraph(Document doc) {


                int cont=24,var=7;
                String bar[] = new String[cont];



               /*
                * Getting elements from the graphic in an array from 0-23. 0 it's 1:00am, 23 it's 00:00am
                */

               for (cont=0; cont < 24; cont++){

               String onMouseOver = doc.select("a").get(var+cont).attr("onMouseOver");
               bar[cont] = onMouseOver.split("'")[9];


               }


               return bar;



        }



        public String[] getValuesFooter(Document doc) {



            String values[] = new String[7];


            /*
                * Getting elements from the graphic footer
                */

               String delimiters= "[ /]+";
               Elements elements = doc.select("td.cabeceraRutaTexto");
               elements.size(); // 6



                   /*  Getting text from table */
                   values[0] = elements.get(0).text(); // TITLE
                   values[1] = elements.get(1).text(); // TEXT MAX VALUE
                   values[2] = elements.get(2).text(); // TEXT MIDDLE VALUE
                   values[3] = elements.get(3).text(); // TEXTO MIN VALUE

                   /* Getting numbers from table */

                   values[4] = elements.get(4).text().split(delimiters)[0]; // NUMBER MAX VALUE
                   values[5] = elements.get(5).text().split(delimiters)[0]; // NUMBER MIDDLE VALUE
                   values[6] = elements.get(6).text().split(delimiters)[0]; // NUMBER MIN VALUE    


                   return values;


         }


        public Document getUrl(){

              try {
                    URL url= new URL("http://www.endesaonline.com/canal/precios/Canal_Preciosdelpool.asp?FECHA=20140226");
                    /*URL url= new URL("http://www.endesaonline.com/canal/precios/Canal_Preciosdelpool.asp?lang=es&frameId=4064&segmento=1&promocion=");*/
                    Document doc = Jsoup.connect(url.toString()).get();

                    return doc;      

              } catch (IOException e) {
                    e.printStackTrace();
                }
              return null;
        }

        @Override
        public Pair doInBackground(Void... params) {

            Pair p = new Pair();


                GlobalVariables gs = (GlobalVariables) getApplication();
                gs.setBar(getValuesGraph(getUrl()));

                p.bar = getValuesGraph(getUrl());

                p.values = getValuesFooter(getUrl());


         return p;


        }



        public String ActualHourValue() {

            Format formatter = new SimpleDateFormat("H");
            String onlyhour = formatter.format(new Date());

            return onlyhour;


        }

        public void ShowDateHour(){


            Calendar c = Calendar.getInstance();
            SimpleDateFormat df3 = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss a");
            String formattedDate3 = df3.format(c.getTime());
            tvdate.setText("Fecha y hora actuales : "+formattedDate3);

        }


        @Override
        protected void onPostExecute(Pair p) {



            int hour =  Integer.parseInt(ActualHourValue());
            tvvaloractual.setText(p.bar[hour]+" €/MWh");

            tvmax.setText(p.values[4]+" €/MWh");
            tvmid.setText(p.values[5]+" €/MWh");
            tvmin.setText(p.values[6]+" €/MWh");

            ShowDateHour();

           /*super.onPostExecute(p.values);*/
        }





    }




}
public class MainActivity extends Activity {
private TextView tvmax, tvmid, tvmin, tvactualval,tvvaloractual,tvdate;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tvdate=(TextView)findViewById(R.id.tvdate);
    tvvaloractual=(TextView)findViewById(R.id.tvvaloractual);
    tvmax=(TextView)findViewById(R.id.tvmaximo);
    tvmid=(TextView)findViewById(R.id.tvmedio);
    tvmin=(TextView)findViewById(R.id.tvminimo);

    new BackGroundTask().execute();

    callAsynchronousTask();

}


public void callAsynchronousTask() {
    final Handler handler = new Handler();
    Timer timer = new Timer();
    TimerTask doAsynchronousTask = new TimerTask() {       
        @Override
        public void run() {
            handler.post(new Runnable() {
                public void run() {       
                    try {
                        BackGroundTask performBackgroundTask = new BackGroundTask();
                        // PerformBackgroundTask this class is the class that extends AsynchTask 
                        performBackgroundTask.execute();
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                    }
                }
            });
        }
    };
    timer.schedule(doAsynchronousTask, 0, 1000); //execute in every 1000 ms
}




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public class Pair
{
    public String[] bar;
    public String[] values;
}

   public void viewallday(View view) {



        Intent intent = new Intent(MainActivity.this, Activity_allday.class);


        startActivity(intent);



    }  





class BackGroundTask extends AsyncTask<Void, Void, Pair> {


    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }



    public String[] getValuesGraph(Document doc) {


            int cont=24,var=7;
            String bar[] = new String[cont];



           /*
            * Getting elements from the graphic in an array from 0-23. 0 it's 1:00am, 23 it's 00:00am
            */

           for (cont=0; cont < 24; cont++){

           String onMouseOver = doc.select("a").get(var+cont).attr("onMouseOver");
           bar[cont] = onMouseOver.split("'")[9];


           }


           return bar;



    }



    public String[] getValuesFooter(Document doc) {



        String values[] = new String[7];


        /*
            * Getting elements from the graphic footer
            */

           String delimiters= "[ /]+";
           Elements elements = doc.select("td.cabeceraRutaTexto");
           elements.size(); // 6



               /*  Getting text from table */
               values[0] = elements.get(0).text(); // TITLE
               values[1] = elements.get(1).text(); // TEXT MAX VALUE
               values[2] = elements.get(2).text(); // TEXT MIDDLE VALUE
               values[3] = elements.get(3).text(); // TEXTO MIN VALUE

               /* Getting numbers from table */

               values[4] = elements.get(4).text().split(delimiters)[0]; // NUMBER MAX VALUE
               values[5] = elements.get(5).text().split(delimiters)[0]; // NUMBER MIDDLE VALUE
               values[6] = elements.get(6).text().split(delimiters)[0]; // NUMBER MIN VALUE    


               return values;


     }


    public Document getUrl(){

          try {
                URL url= new URL("http://www.endesaonline.com/canal/precios/Canal_Preciosdelpool.asp?FECHA=20140226");
                /*URL url= new URL("http://www.endesaonline.com/canal/precios/Canal_Preciosdelpool.asp?lang=es&frameId=4064&segmento=1&promocion=");*/
                Document doc = Jsoup.connect(url.toString()).get();

                return doc;      

          } catch (IOException e) {
                e.printStackTrace();
            }
          return null;
    }

    @Override
    public Pair doInBackground(Void... params) {

        Pair p = new Pair();


            GlobalVariables gs = (GlobalVariables) getApplication();
            gs.setBar(getValuesGraph(getUrl()));

            p.bar = getValuesGraph(getUrl());

            p.values = getValuesFooter(getUrl());


     return p;


    }



    public String ActualHourValue() {

        Format formatter = new SimpleDateFormat("H");
        String onlyhour = formatter.format(new Date());

        return onlyhour;


    }

    public void ShowDateHour(){


        Calendar c = Calendar.getInstance();
        SimpleDateFormat df3 = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss a");
        String formattedDate3 = df3.format(c.getTime());
        tvdate.setText("Fecha y hora actuales : "+formattedDate3);

    }


    @Override
    protected void onPostExecute(Pair p) {



        int hour =  Integer.parseInt(ActualHourValue());
        tvvaloractual.setText(p.bar[hour]+" €/MWh");

        tvmax.setText(p.values[4]+" €/MWh");
        tvmid.setText(p.values[5]+" €/MWh");
        tvmin.setText(p.values[6]+" €/MWh");

        ShowDateHour();

       /*super.onPostExecute(p.values);*/
      }





    }


  }
}

下面是一个GlobalVariable类,它捕获了我要发送给活动B的数组:

public class Activity_allday extends MainActivity {


private TextView tvall;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.all_day_price);

        TextView tvall=(TextView)findViewById(R.id.tvall); 

        GlobalVariables gs = (GlobalVariables) getApplication();
        String[] s = gs.getBar();
        tvall.setText(s[0]);       

    }
public class Activity_allday extends MainActivity {


private TextView tvall;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.all_day_price);

        TextView tvall=(TextView)findViewById(R.id.tvall); 

        GlobalVariables gs = (GlobalVariables) getApplication();
        String[] s = gs.getBar();
        tvall.setText(s[0]);       

    }
public class Activity_allday extends MainActivity {


private TextView tvall;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.all_day_price);

    TextView tvall=(TextView)findViewById(R.id.tvall); 

    GlobalVariables gs = (GlobalVariables) getApplication();
    String[] s = gs.getBar();
    tvall.setText(s[0]);       

}
public class Activity_allday extends MainActivity {


private TextView tvall;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.all_day_price);

    TextView tvall=(TextView)findViewById(R.id.tvall); 

    GlobalVariables gs = (GlobalVariables) getApplication();
    String[] s = gs.getBar();
    tvall.setText(s[0]);       

}
}
}

就这些!希望对未来的用户有所帮助


谢谢大家的帮助。

以下是您可以尝试的:

在AsyncTask内部,定义一个接口和一个方法,该接口和方法将数据传回调用活动,在该方法内部,调用下一个活动并将数据设置为额外数据

这是最简单的方法

在AsyncTask的onPostExecute(result)内部,使用try块调用属于上述接口的方法,该接口必须由调用活动实现

HomeActivity.java

/public class SampleActivity extends Activity implements SampleAsyncTask.OnUpdateListener{

 @Override
 public void onCreate(Bundle savedInstanceState){
     super.onCreate(savedInstanceState);

     executeAsync();
 }

 public void executeAsync(){

     new SampleAsyncTask(this).execute("someFlagToCheck");
 }

 @Override
 public void onDataProcessed(String result){

    Intent intent = new Intent(this, SecondActivity.class);
    intent.putExtra("data", result);
    startActivity(intent);
 }
}
public class SampleAsyncTask extends AsyncTask<Void, Void, String>{

    Context context;

    //constructor
    SampleAsyncTask(Context context){
       this.context = context;
    }

    @Override
    public void doInBackground(String... params){

         //do something depending on the arguments in params
         return "data";
    }


    @Override
    public void onPostExecute(String result){

        try{
           ((OnUpdateListener) context).onDataProcessed(result);
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public interface OnUpdateListener{

        public void onDataProcessed(String data);
    }
}
SampleAsyncTask.java

/public class SampleActivity extends Activity implements SampleAsyncTask.OnUpdateListener{

 @Override
 public void onCreate(Bundle savedInstanceState){
     super.onCreate(savedInstanceState);

     executeAsync();
 }

 public void executeAsync(){

     new SampleAsyncTask(this).execute("someFlagToCheck");
 }

 @Override
 public void onDataProcessed(String result){

    Intent intent = new Intent(this, SecondActivity.class);
    intent.putExtra("data", result);
    startActivity(intent);
 }
}
public class SampleAsyncTask extends AsyncTask<Void, Void, String>{

    Context context;

    //constructor
    SampleAsyncTask(Context context){
       this.context = context;
    }

    @Override
    public void doInBackground(String... params){

         //do something depending on the arguments in params
         return "data";
    }


    @Override
    public void onPostExecute(String result){

        try{
           ((OnUpdateListener) context).onDataProcessed(result);
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public interface OnUpdateListener{

        public void onDataProcessed(String data);
    }
}
公共类SampleAsyncTask扩展异步任务{
语境;
//建造师
SamPleaseSyncTask(上下文){
this.context=上下文;
}
@凌驾
公共void doInBackground(字符串…参数){
//根据params中的参数执行某些操作
返回“数据”;
}
@凌驾
public void onPostExecute(字符串结果){
试一试{
((OnUpdateListener)上下文);
}捕获(例外e){
e、 printStackTrace();
}
}
公共接口OnUpdateListener{
已处理的公共数据(字符串数据);
}
}
遵循这个例子。调用活动实现AsyncTask的接口并重写其方法,该方法将在async任务完成并返回结果时调用

我希望这有帮助。

解决方案:

以下是活动A的代码:

public class MainActivity extends Activity {

private TextView tvmax, tvmid, tvmin, tvactualval,tvvaloractual,tvdate;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tvdate=(TextView)findViewById(R.id.tvdate);
        tvvaloractual=(TextView)findViewById(R.id.tvvaloractual);
        tvmax=(TextView)findViewById(R.id.tvmaximo);
        tvmid=(TextView)findViewById(R.id.tvmedio);
        tvmin=(TextView)findViewById(R.id.tvminimo);

        new BackGroundTask().execute();

        callAsynchronousTask();

    }


    public void callAsynchronousTask() {
        final Handler handler = new Handler();
        Timer timer = new Timer();
        TimerTask doAsynchronousTask = new TimerTask() {       
            @Override
            public void run() {
                handler.post(new Runnable() {
                    public void run() {       
                        try {
                            BackGroundTask performBackgroundTask = new BackGroundTask();
                            // PerformBackgroundTask this class is the class that extends AsynchTask 
                            performBackgroundTask.execute();
                        } catch (Exception e) {
                            // TODO Auto-generated catch block
                        }
                    }
                });
            }
        };
        timer.schedule(doAsynchronousTask, 0, 1000); //execute in every 1000 ms
    }




    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public class Pair
    {
        public String[] bar;
        public String[] values;
    }

       public void viewallday(View view) {



            Intent intent = new Intent(MainActivity.this, Activity_allday.class);


            startActivity(intent);



        }  





    class BackGroundTask extends AsyncTask<Void, Void, Pair> {


        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }



        public String[] getValuesGraph(Document doc) {


                int cont=24,var=7;
                String bar[] = new String[cont];



               /*
                * Getting elements from the graphic in an array from 0-23. 0 it's 1:00am, 23 it's 00:00am
                */

               for (cont=0; cont < 24; cont++){

               String onMouseOver = doc.select("a").get(var+cont).attr("onMouseOver");
               bar[cont] = onMouseOver.split("'")[9];


               }


               return bar;



        }



        public String[] getValuesFooter(Document doc) {



            String values[] = new String[7];


            /*
                * Getting elements from the graphic footer
                */

               String delimiters= "[ /]+";
               Elements elements = doc.select("td.cabeceraRutaTexto");
               elements.size(); // 6



                   /*  Getting text from table */
                   values[0] = elements.get(0).text(); // TITLE
                   values[1] = elements.get(1).text(); // TEXT MAX VALUE
                   values[2] = elements.get(2).text(); // TEXT MIDDLE VALUE
                   values[3] = elements.get(3).text(); // TEXTO MIN VALUE

                   /* Getting numbers from table */

                   values[4] = elements.get(4).text().split(delimiters)[0]; // NUMBER MAX VALUE
                   values[5] = elements.get(5).text().split(delimiters)[0]; // NUMBER MIDDLE VALUE
                   values[6] = elements.get(6).text().split(delimiters)[0]; // NUMBER MIN VALUE    


                   return values;


         }


        public Document getUrl(){

              try {
                    URL url= new URL("http://www.endesaonline.com/canal/precios/Canal_Preciosdelpool.asp?FECHA=20140226");
                    /*URL url= new URL("http://www.endesaonline.com/canal/precios/Canal_Preciosdelpool.asp?lang=es&frameId=4064&segmento=1&promocion=");*/
                    Document doc = Jsoup.connect(url.toString()).get();

                    return doc;      

              } catch (IOException e) {
                    e.printStackTrace();
                }
              return null;
        }

        @Override
        public Pair doInBackground(Void... params) {

            Pair p = new Pair();


                GlobalVariables gs = (GlobalVariables) getApplication();
                gs.setBar(getValuesGraph(getUrl()));

                p.bar = getValuesGraph(getUrl());

                p.values = getValuesFooter(getUrl());


         return p;


        }



        public String ActualHourValue() {

            Format formatter = new SimpleDateFormat("H");
            String onlyhour = formatter.format(new Date());

            return onlyhour;


        }

        public void ShowDateHour(){


            Calendar c = Calendar.getInstance();
            SimpleDateFormat df3 = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss a");
            String formattedDate3 = df3.format(c.getTime());
            tvdate.setText("Fecha y hora actuales : "+formattedDate3);

        }


        @Override
        protected void onPostExecute(Pair p) {



            int hour =  Integer.parseInt(ActualHourValue());
            tvvaloractual.setText(p.bar[hour]+" €/MWh");

            tvmax.setText(p.values[4]+" €/MWh");
            tvmid.setText(p.values[5]+" €/MWh");
            tvmin.setText(p.values[6]+" €/MWh");

            ShowDateHour();

           /*super.onPostExecute(p.values);*/
        }





    }




}
public class MainActivity extends Activity {
private TextView tvmax, tvmid, tvmin, tvactualval,tvvaloractual,tvdate;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tvdate=(TextView)findViewById(R.id.tvdate);
    tvvaloractual=(TextView)findViewById(R.id.tvvaloractual);
    tvmax=(TextView)findViewById(R.id.tvmaximo);
    tvmid=(TextView)findViewById(R.id.tvmedio);
    tvmin=(TextView)findViewById(R.id.tvminimo);

    new BackGroundTask().execute();

    callAsynchronousTask();

}


public void callAsynchronousTask() {
    final Handler handler = new Handler();
    Timer timer = new Timer();
    TimerTask doAsynchronousTask = new TimerTask() {       
        @Override
        public void run() {
            handler.post(new Runnable() {
                public void run() {       
                    try {
                        BackGroundTask performBackgroundTask = new BackGroundTask();
                        // PerformBackgroundTask this class is the class that extends AsynchTask 
                        performBackgroundTask.execute();
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                    }
                }
            });
        }
    };
    timer.schedule(doAsynchronousTask, 0, 1000); //execute in every 1000 ms
}




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public class Pair
{
    public String[] bar;
    public String[] values;
}

   public void viewallday(View view) {



        Intent intent = new Intent(MainActivity.this, Activity_allday.class);


        startActivity(intent);



    }  





class BackGroundTask extends AsyncTask<Void, Void, Pair> {


    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }



    public String[] getValuesGraph(Document doc) {


            int cont=24,var=7;
            String bar[] = new String[cont];



           /*
            * Getting elements from the graphic in an array from 0-23. 0 it's 1:00am, 23 it's 00:00am
            */

           for (cont=0; cont < 24; cont++){

           String onMouseOver = doc.select("a").get(var+cont).attr("onMouseOver");
           bar[cont] = onMouseOver.split("'")[9];


           }


           return bar;



    }



    public String[] getValuesFooter(Document doc) {



        String values[] = new String[7];


        /*
            * Getting elements from the graphic footer
            */

           String delimiters= "[ /]+";
           Elements elements = doc.select("td.cabeceraRutaTexto");
           elements.size(); // 6



               /*  Getting text from table */
               values[0] = elements.get(0).text(); // TITLE
               values[1] = elements.get(1).text(); // TEXT MAX VALUE
               values[2] = elements.get(2).text(); // TEXT MIDDLE VALUE
               values[3] = elements.get(3).text(); // TEXTO MIN VALUE

               /* Getting numbers from table */

               values[4] = elements.get(4).text().split(delimiters)[0]; // NUMBER MAX VALUE
               values[5] = elements.get(5).text().split(delimiters)[0]; // NUMBER MIDDLE VALUE
               values[6] = elements.get(6).text().split(delimiters)[0]; // NUMBER MIN VALUE    


               return values;


     }


    public Document getUrl(){

          try {
                URL url= new URL("http://www.endesaonline.com/canal/precios/Canal_Preciosdelpool.asp?FECHA=20140226");
                /*URL url= new URL("http://www.endesaonline.com/canal/precios/Canal_Preciosdelpool.asp?lang=es&frameId=4064&segmento=1&promocion=");*/
                Document doc = Jsoup.connect(url.toString()).get();

                return doc;      

          } catch (IOException e) {
                e.printStackTrace();
            }
          return null;
    }

    @Override
    public Pair doInBackground(Void... params) {

        Pair p = new Pair();


            GlobalVariables gs = (GlobalVariables) getApplication();
            gs.setBar(getValuesGraph(getUrl()));

            p.bar = getValuesGraph(getUrl());

            p.values = getValuesFooter(getUrl());


     return p;


    }



    public String ActualHourValue() {

        Format formatter = new SimpleDateFormat("H");
        String onlyhour = formatter.format(new Date());

        return onlyhour;


    }

    public void ShowDateHour(){


        Calendar c = Calendar.getInstance();
        SimpleDateFormat df3 = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss a");
        String formattedDate3 = df3.format(c.getTime());
        tvdate.setText("Fecha y hora actuales : "+formattedDate3);

    }


    @Override
    protected void onPostExecute(Pair p) {



        int hour =  Integer.parseInt(ActualHourValue());
        tvvaloractual.setText(p.bar[hour]+" €/MWh");

        tvmax.setText(p.values[4]+" €/MWh");
        tvmid.setText(p.values[5]+" €/MWh");
        tvmin.setText(p.values[6]+" €/MWh");

        ShowDateHour();

       /*super.onPostExecute(p.values);*/
      }





    }


  }
}

捕获要发送到活动B的数组的全局变量类:

public class Activity_allday extends MainActivity {


private TextView tvall;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.all_day_price);

        TextView tvall=(TextView)findViewById(R.id.tvall); 

        GlobalVariables gs = (GlobalVariables) getApplication();
        String[] s = gs.getBar();
        tvall.setText(s[0]);       

    }
public class Activity_allday extends MainActivity {


private TextView tvall;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.all_day_price);

        TextView tvall=(TextView)findViewById(R.id.tvall); 

        GlobalVariables gs = (GlobalVariables) getApplication();
        String[] s = gs.getBar();
        tvall.setText(s[0]);       

    }
public class Activity_allday extends MainActivity {


private TextView tvall;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.all_day_price);

    TextView tvall=(TextView)findViewById(R.id.tvall); 

    GlobalVariables gs = (GlobalVariables) getApplication();
    String[] s = gs.getBar();
    tvall.setText(s[0]);       

}
public class Activity_allday extends MainActivity {


private TextView tvall;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.all_day_price);

    TextView tvall=(TextView)findViewById(R.id.tvall); 

    GlobalVariables gs = (GlobalVariables) getApplication();
    String[] s = gs.getBar();
    tvall.setText(s[0]);       

}
}

谢谢大家的帮助

你有没有试过让一个服务将数据保存到某个共享的地方(例如应用程序singleton)?没有,我会在Google上看看singleton和他的应用程序。非常感谢@StephanYou也可以使用包裹。有关更多信息,请参阅。@Stephan我终于尝试使用singleton了。对活动B的调用工作正常,但当我尝试获取数组时,程序因上述错误而崩溃。有什么想法吗?谢谢。@user3321425,对不起,我休息了几天。我看你还是成功了。您能否将您的解决方案作为答案发布,以便其他人可以从中受益?谢谢@Eenvincible。我将仔细阅读你的建议,试图复制它。我正在为这个问题而斗争,现在我所能做的就是对startActivity的一系列呼叫PIt工作正常,但也会导致循环,因为如果我将活动调用放在onPostExecute()中,它正在调用的方法就是startActivity(intent)@再次感谢。你好,很遗憾你的回答还不能解决我的问题。正如我在上一篇评论中所解释的,我有一个带有startActivity(intent)的循环,因为BackGroundTask和他的方法OnPostExecute()每秒刷新一次。@Eenvincible如果你能给我一个示例代码,那将非常有帮助。非常感谢。谢谢,我正试着在我的代码中加入你的行。但Asynctask、callAsynchronousTask、BackGroundTask和OnUpdateListener的公共接口(必须在顶级类上定义它的某些内容)都有问题。我明天去看看,现在我必须休息了。谢谢你@eenvicible!!不幸的是,我无法使代码正常工作,我将继续尝试。也许我挑选VAR的方式不是让他们整天参加活动的最佳方式。