
Micka
Fortgeschrittenes Mitglied
- 1
Hy,
in meiner App nutze ich einen AsyncTask und einen Messenger um permanent Netzwerkdaten zu empfangen. Wenn ich die Activity verlasse möchte ich aber den Asynctask killen da es sonst Probleme gibt wenn ich die Activity neu starte und den gleichen Asyncstask starten möchte.
Nun habe ich gedacht beim beenden der Activity rufe ich noch AsyncTask.cancel(true); auf, checke in der DoinBackground
if(isCancelled())
return null;
aber trotzdessen beendet sich der AsyncTask nicht, was mich ein wenig verwundert.
Mach ich etwas falsch um den zu beenden?
Ich poste mal den Code der Klasse noch.
P.S. Die Klasse Sende zur Definition des Asyntask steht ganz am Ende
in meiner App nutze ich einen AsyncTask und einen Messenger um permanent Netzwerkdaten zu empfangen. Wenn ich die Activity verlasse möchte ich aber den Asynctask killen da es sonst Probleme gibt wenn ich die Activity neu starte und den gleichen Asyncstask starten möchte.
Nun habe ich gedacht beim beenden der Activity rufe ich noch AsyncTask.cancel(true); auf, checke in der DoinBackground
if(isCancelled())
return null;
aber trotzdessen beendet sich der AsyncTask nicht, was mich ein wenig verwundert.
Mach ich etwas falsch um den zu beenden?
Ich poste mal den Code der Klasse noch.
P.S. Die Klasse Sende zur Definition des Asyntask steht ganz am Ende
Code:
package de.gerding.pentatonikpiano;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.Inet4Address;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.media.AudioManager;
import android.media.SoundPool;
import android.media.SoundPool.OnLoadCompleteListener;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Messenger;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.Toast;
public class Mainscreen extends Activity
{
private static final int RESULT_SETTINGS = 1;
private static boolean ping;
private static boolean wait;
private static String arduinoIP = "192.168.137.3";
private static int arduinoPort = 1234;
/*private long halb = 995;
private long viertel = 497;*/
private long halb = 800;
private long viertel = 400;
/*private long halb = 650;
private long viertel = 325;*/
//Hopp Hopp Hopp, Pferdchen lauf galopp in G-Dur
private int g = 0;
private int a = 1;
private int h = 2;
private int c = 3;
private int d = 4;
private static int tastzahl;
private int pause = 200;
private int[] hohoho = {g, h, d, pause, d, c, h, a, g,pause, c, c, a, a, d, d, h, h, c, c, a, a, d, d, h, g,pause, g, a, h, c, d,pause, d, c, h, a, g};
private String[] noten = {"g", "h", "d", "d", "c", "h", "a", "g", "c", "c", "a", "a", "d", "d", "h", "h", "c", "c", "a", "a", "d", "d", "h", "g", "g", "a", "h", "c", "d", "d", "c", "h", "a", "g"};
// g, h, d, d, c, h, a, g, c, c, a, a, d, d, h, h, c, c, a, a, d, d, h, g, g, a, h, c, d, d, c, h, a, g
private long[] duration = {halb, halb, halb,viertel, viertel, viertel, viertel, halb, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, halb, viertel, viertel, viertel, viertel, halb};
// g, h, d, pause d, c, h, a, g, pause c, c, a, a, d, d, h, h, c, c, a, a, d, d, h, g, pause g, a, h, c, d, pause d, c, h, a, g
private long[] duration2 = {halb, halb, halb,pause, viertel, viertel, viertel, viertel, halb,pause, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel, viertel,pause, viertel, viertel, viertel, viertel, halb, pause, viertel, viertel, viertel, viertel, halb};
private SoundPool mSoundPool;
private int[] soundID = new int[5];
private int[] sampleID = new int[5];
private boolean[] loaded = new boolean[6];
private int index = 0;
private Button btn_note_g, btn_note_a, btn_note_h, btn_note_c, btn_note_d;
private long[][] time = new long[5][2];
private String[] teststring = new String[noten.length];
private String soll = "ghddchagccaaddhhccaaddhggahcddchag";
private String ist = "";
private long[] testlong = new long[noten.length];
private int z = 0;
private int ijk;
private int zwischenzeitnr = 0;
private int zwischenzeitanzahl = 0;
private long zwischenzeit[] = new long[2];
private long zwischenzeitenbuffer[] = new long[noten.length];
private long[] zwischenzeiten;
private String notenlaenge = "";
private Context thisContext;
private String[] auswertung = new String[noten.length*2];
private String[] auswertungcache = new String[noten.length];
private CouchDBManager dbManager = new CouchDBManager();
private static Messenger messenger;
private static Handler messageHandler;
private static AsyncTask<String, Void, String> senden;
private static boolean check;
private static boolean stop;
private static boolean cancelTask = false;
private static Activity mainscreenActivity;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainscreen);
refreshUserSettings();
verbindungstest();
mainscreenActivity = this;
tastzahl = 0;
check = true;
stop = false;
z = 0;
messageHandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
Bundle extras = msg.getData();
String[] ergebnis = extras.getStringArray("erg");
for(int i = 0; i< ergebnis.length; i++)
{
System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ " + z);
if((ergebnis[i].equals("1"))&&(check))
{
stopMeantime();
switch(i)
{
case 0: sampleID[0] = mSoundPool.play(soundID[0], 1f, 1f, 1, 0, 1f); starttime(0); teststring[z] = "g"; ijk = i; break;
case 1: sampleID[1] = mSoundPool.play(soundID[1], 1f, 1f, 1, 0, 1f); starttime(1); teststring[z] = "a"; ijk = i; break;
case 2: sampleID[2] = mSoundPool.play(soundID[2], 1f, 1f, 1, 0, 1f); starttime(2); teststring[z] = "h"; ijk = i; break;
case 3: sampleID[3] = mSoundPool.play(soundID[3], 1f, 1f, 1, 0, 1f); starttime(3); teststring[z] = "c"; ijk = i; break;
case 4: sampleID[4] = mSoundPool.play(soundID[4], 1f, 1f, 1, 0, 1f); starttime(4); teststring[z] = "d"; ijk = i; break;
}
System.out.println("IIIJJJJJJJJKKKKKKKKKKK " + ijk);
tastzahl++;
check = false;
System.out.println("!!!!!!!!!!!!!!???????????$$$$$$$$$ " + tastzahl);
if(tastzahl == 34)
{
System.out.println(ist);
senden.cancel(true);
}
}
if((ergebnis[ijk].equals("0"))&&(!check))
{
System.out.println("losgelassen");
startMeantime();
switch(ijk)
{
case 0: mSoundPool.stop(sampleID[0]); stoptime(0); testlong[z] = getTimeDifference(time[0][0], time[0][1]); z++; break;
case 1: mSoundPool.stop(sampleID[1]); stoptime(1); testlong[z] = getTimeDifference(time[1][0], time[1][1]); z++; break;
case 2: mSoundPool.stop(sampleID[2]); stoptime(2); testlong[z] = getTimeDifference(time[2][0], time[2][1]); z++; break;
case 3: mSoundPool.stop(sampleID[3]); stoptime(3); testlong[z] = getTimeDifference(time[3][0], time[3][1]); z++; break;
case 4: mSoundPool.stop(sampleID[4]); stoptime(4); testlong[z] = getTimeDifference(time[4][0], time[4][1]); z++; break;
}
check = true;
if(z == noten.length && (!stop))
{
stop = true;
for(int j = 0; j < noten.length; j++)
{
//auswertungcache[i] = "Sollton: " +hohohonoten[i] + " Istton: " + teststring[i] + " Sollzeit: " + duration[i] + " Istzeit: " + testlong[i];
auswertungcache[j] =" " + noten[j] + " " + teststring[j] + " " + duration[j] + " " + testlong[j] + " ";
if((testlong[j]-duration[j]) < 10 && (testlong[j]-duration[j]) > -10 )
{
notenlaenge = notenlaenge + "perfekt, ";
auswertungcache[j] = auswertungcache[j] + " perfekt (" + String.valueOf(testlong[j]-duration[j]) +")" ;
}else if(testlong[j] > (duration[j] + 100))
{
notenlaenge = notenlaenge + "zu lang, ";
auswertungcache[j] = auswertungcache[j] + " zu lang (" + String.valueOf(testlong[j]-duration[j]) +")" ;
}else if(testlong[j] < (duration[j] - 100))
{
notenlaenge = notenlaenge + "zu kurz, ";
auswertungcache[j] = auswertungcache[j] + " zu kurz (" + String.valueOf(testlong[j]-duration[j]) +")" ;
}else
{
notenlaenge = notenlaenge + "gut, ";
auswertungcache[j] = auswertungcache[j] + " gut (" + String.valueOf(testlong[j]-duration[j]) +")" ;
}
}
int k = 1;
int l = 2;
int m = 0;
while(m < auswertungcache.length)
{
auswertung[k] = auswertungcache[m];
if(l<auswertung.length)
{
auswertung[l] = "Zwischenzeit" + (m+1) + ": " + String.valueOf(zwischenzeitenbuffer[m+1]);
}
k = k + 2;
l = l + 2;
m++;
}
//Tonfolge kontrollieren
String soll = "";
String ist = "";
for(int j = 0; j < noten.length; j++)
{
soll = soll + noten[j];
ist = ist + teststring[j];
}
if(ist.equals(soll))
{
Toast.makeText(getApplicationContext(), "Richtige Tonfolge!", Toast.LENGTH_SHORT).show();
}else
{
Toast.makeText(getApplicationContext(), "Falsche Tonfolge, nochmal üben!", Toast.LENGTH_SHORT).show();
//ist = "";
}
for( int j = 1; j <= zwischenzeitanzahl; j++)
{
System.out.println("Zwischenzeit " + j + " :" + zwischenzeitenbuffer[j]);
}
zwischenzeiten = new long[zwischenzeitanzahl];
for(int j = 0; j < zwischenzeiten.length; j++)
{
zwischenzeiten[j] = zwischenzeitenbuffer[j+1];
}
if(ping)
{
//Werte in DB eintragen
final Handler myHandler = new Handler(); // wird automatisch mit aktuellem Thread vebunden.
new Thread()
{
public void run()
{
try
{
dbManager.wertEintragen("pentatoniktest", noten, teststring, duration, testlong, zwischenzeiten);
} catch (Exception e)
{
e.printStackTrace();
}
}
}.start();
}
Intent intent = new Intent(thisContext, Auswertungstyp.class);
intent.putExtra("auswertung", auswertung);
intent.putExtra("SOLLNOTEN", noten);
intent.putExtra("ISTNOTEN", teststring);
intent.putExtra("SOLLTASTZEITEN", duration);
intent.putExtra("ISTTASTZEITEN", testlong);
startActivity(intent);
/*Intent intent = new Intent(thisContext, Auswertung.class);
intent.putExtra("auswertung", auswertung);
startActivity(intent);*/
z = 0;
//stop = false;
zwischenzeitnr = 0;
ist = "";
notenlaenge = "";
auswertung = new String[(noten.length * 2)]; //79
auswertungcache = new String[noten.length];
mainscreenActivity.finish();
cancelTask = true;
[U][B]senden.cancel(true);[/B][/U]
}
}/*else
{
if(ergebnis[0].equals("0")&&ergebnis[1].equals("0")&&ergebnis[2].equals("0")&&ergebnis[3].equals("0")&&ergebnis[4].equals("0"))
check = true;
}*/
}
}
};
messenger = new Messenger(messageHandler);
//new sende().execute("");
//senden.cancel(true);
[U][B]senden = new sende().execute("");[/B][/U]
thisContext = this.getApplicationContext();
btn_note_g = (Button) findViewById (R.id.btn_note_g);
btn_note_a = (Button) findViewById (R.id.btn_note_a);
btn_note_h = (Button) findViewById (R.id.btn_note_h);
btn_note_c = (Button) findViewById (R.id.btn_note_c);
btn_note_d = (Button) findViewById (R.id.btn_note_d);
btn_note_g.setOnTouchListener(touchListener);
btn_note_a.setOnTouchListener(touchListener);
btn_note_h.setOnTouchListener(touchListener);
btn_note_c.setOnTouchListener(touchListener);
btn_note_d.setOnTouchListener(touchListener);
//SoundPool-Stuff
this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
mSoundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener()
{
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,int status)
{
if(index < 5)
{
loaded[index] = true;
sampleID[index] = sampleId;
index++;
}
}
});
for(int i=0;i<soundID.length;i++)
{
switch(i)
{
case 0: soundID[i] = mSoundPool.load(this, R.raw.g, 1); break;
case 1: soundID[i] = mSoundPool.load(this, R.raw.a, 1); break;
case 2: soundID[i] = mSoundPool.load(this, R.raw.h, 1); break;
case 3: soundID[i] = mSoundPool.load(this, R.raw.c, 1); break;
case 4: soundID[i] = mSoundPool.load(this, R.raw.d, 1); break;
}
}
}
private boolean allLoaded()
{
boolean result = false;
for(int i=0;i<4;i++)
{
if(loaded[i])
result = true;
else
result = false;
}
return result;
}
private OnTouchListener touchListener = new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
if(allLoaded())
{
if(event.getAction() == MotionEvent.ACTION_DOWN)
{
stopMeantime();
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
float actualVolume = (float) audioManager
.getStreamVolume(AudioManager.STREAM_MUSIC);
float maxVolume = (float) audioManager
.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = actualVolume / maxVolume;
switch(v.getId())
{
case R.id.btn_note_g: sampleID[0] = mSoundPool.play(soundID[0], volume, volume, 1, 0, 1f); starttime(0); teststring[z] = "g"; break;
case R.id.btn_note_a: sampleID[1] = mSoundPool.play(soundID[1], volume, volume, 1, 0, 1f); starttime(1); teststring[z] = "a"; break;
case R.id.btn_note_h: sampleID[2] = mSoundPool.play(soundID[2], volume, volume, 1, 0, 1f); starttime(2); teststring[z] = "h"; break;
case R.id.btn_note_c: sampleID[3] = mSoundPool.play(soundID[3], volume, volume, 1, 0, 1f); starttime(3); teststring[z] = "c"; break;
case R.id.btn_note_d: sampleID[4] = mSoundPool.play(soundID[4], volume, volume, 1, 0, 1f); starttime(4); teststring[z] = "d"; break;
}
}
else if(event.getAction() == MotionEvent.ACTION_UP)
{
startMeantime();
switch(v.getId())
{
case R.id.btn_note_g: mSoundPool.stop(sampleID[0]); stoptime(0); testlong[z] = getTimeDifference(time[0][0], time[0][1]); z++; break;
case R.id.btn_note_a: mSoundPool.stop(sampleID[1]); stoptime(1); testlong[z] = getTimeDifference(time[1][0], time[1][1]); z++; break;
case R.id.btn_note_h: mSoundPool.stop(sampleID[2]); stoptime(2); testlong[z] = getTimeDifference(time[2][0], time[2][1]); z++; break;
case R.id.btn_note_c: mSoundPool.stop(sampleID[3]); stoptime(3); testlong[z] = getTimeDifference(time[3][0], time[3][1]); z++; break;
case R.id.btn_note_d: mSoundPool.stop(sampleID[4]); stoptime(4); testlong[z] = getTimeDifference(time[4][0], time[4][1]); z++; break;
}
//
if(z == noten.length)
{
for(int i = 0; i < noten.length; i++)
{
//auswertungcache[i] = "Sollton: " +hohohonoten[i] + " Istton: " + teststring[i] + " Sollzeit: " + duration[i] + " Istzeit: " + testlong[i];
auswertungcache[i] =" " + noten[i] + " " + teststring[i] + " " + duration[i] + " " + testlong[i] + " ";
if((testlong[i]-duration[i]) < 10 && (testlong[i]-duration[i]) > -10 )
{
notenlaenge = notenlaenge + "perfekt, ";
auswertungcache[i] = auswertungcache[i] + " perfekt (" + String.valueOf(testlong[i]-duration[i]) +")" ;
}else if(testlong[i] > (duration[i] + 100))
{
notenlaenge = notenlaenge + "zu lang, ";
auswertungcache[i] = auswertungcache[i] + " zu lang (" + String.valueOf(testlong[i]-duration[i]) +")" ;
}else if(testlong[i] < (duration[i] - 100))
{
notenlaenge = notenlaenge + "zu kurz, ";
auswertungcache[i] = auswertungcache[i] + " zu kurz (" + String.valueOf(testlong[i]-duration[i]) +")" ;
}else
{
notenlaenge = notenlaenge + "gut, ";
auswertungcache[i] = auswertungcache[i] + " gut (" + String.valueOf(testlong[i]-duration[i]) +")" ;
}
}
int k = 1;
int l = 2;
int m = 0;
while(m < auswertungcache.length)
{
auswertung[k] = auswertungcache[m];
if(l<auswertung.length)
{
auswertung[l] = "Zwischenzeit" + (m+1) + ": " + String.valueOf(zwischenzeitenbuffer[m+1]);
}
k = k + 2;
l = l + 2;
m++;
}
//Tonfolge kontrollieren
String soll = "";
String ist = "";
for(int i = 0; i < noten.length; i++)
{
soll = soll + noten[i];
ist = ist + teststring[i];
}
if(ist.equals(soll))
{
Toast.makeText(getApplicationContext(), "Richtige Tonfolge!", Toast.LENGTH_SHORT).show();
}else
{
Toast.makeText(getApplicationContext(), "Falsche Tonfolge, nochmal üben!", Toast.LENGTH_SHORT).show();
//ist = "";
}
for( int i = 1; i <= zwischenzeitanzahl; i++)
{
System.out.println("Zwischenzeit " + i + " :" + zwischenzeitenbuffer[i]);
}
zwischenzeiten = new long[zwischenzeitanzahl];
for(int i = 0; i < zwischenzeiten.length; i++)
{
zwischenzeiten[i] = zwischenzeitenbuffer[i+1];
}
if(ping)
{
//Werte in DB eintragen
final Handler myHandler = new Handler(); // wird automatisch mit aktuellem Thread vebunden.
new Thread()
{
public void run()
{
try
{
dbManager.wertEintragen("pentatoniktest", noten, teststring, duration, testlong, zwischenzeiten);
} catch (Exception e)
{
e.printStackTrace();
}
}
}.start();
}
Intent intent = new Intent(thisContext, Auswertungstyp.class);
intent.putExtra("auswertung", auswertung);
intent.putExtra("SOLLNOTEN", noten);
intent.putExtra("ISTNOTEN", teststring);
intent.putExtra("SOLLTASTZEITEN", duration);
intent.putExtra("ISTTASTZEITEN", testlong);
startActivity(intent);
Intent in2 = new Intent(thisContext, Auswertung.class);
intent.putExtra("auswertung", auswertung);
startActivity(intent);
z = 0;
zwischenzeitnr = 0;
ist = "";
notenlaenge = "";
auswertung = new String[(noten.length * 2)]; //79
auswertungcache = new String[noten.length];
mainscreenActivity.finish();
//cancelTask = true;
}
}
}
else
{
Toast.makeText(getApplicationContext(), "Tones not loaded!", Toast.LENGTH_LONG).show();
}
return false;
}
};
private void starttime(int x)
{
time[x][0] = System.currentTimeMillis();
}
private void stoptime(int x)
{
time[x][1] = System.currentTimeMillis();
//System.out.println("" + (z+1) +": " + (time[x][1]-time[x][0]));
}
private long getTimeDifference(long start, long end)
{
long erg = end-start;
return erg;
}
private void startMeantime()
{
zwischenzeit[0] = System.currentTimeMillis();
}
private void stopMeantime()
{
zwischenzeit[1] = System.currentTimeMillis();
zwischenzeitenbuffer[zwischenzeitnr] = zwischenzeit[1] - zwischenzeit[0];
zwischenzeitanzahl = zwischenzeitnr;
zwischenzeitnr++;
}
public void playSong(final View view)
{
if(allLoaded())
{
Toast.makeText(getApplicationContext(), "jap", Toast.LENGTH_SHORT).show();
int playid;
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!START");
for(int i=0;i<hohoho.length;i++)
{
if(hohoho[i] == pause)
{
System.out.println("PAUSE!");
waitSound(duration2[i]);
}else
{
playid = mSoundPool.play(soundID[hohoho[i]], 0.5f, 0.5f, 1, 0, 1f);
switch (hohoho[i])
{
case 0: System.out.println("G"); break;
case 1: System.out.println("A"); break;
case 2: System.out.println("H"); break;
case 3: System.out.println("C"); break;
case 4: System.out.println("D"); break;
}
waitSound(duration2[i]);
mSoundPool.stop(playid);
}
}
}
else
Toast.makeText(getApplicationContext(), "ne", Toast.LENGTH_SHORT).show();
}
public void auswertungStarten(View view)
{
Log.i("Mainscreen","auswertungStarten(view view)");
Intent in = new Intent(this, AuswertungsChartActivity.class);
in.putExtra("DBNAME", "pentatoniktest");
startActivity(in);
}
private void waitSound(final long time)
{
Thread thread = new Thread(new Runnable()
{
@Override
public void run()
{
try {
Thread.sleep(time);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
});
thread.run();
try {
thread.join();
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
Log.i("Mainscreen","onKeyDown()");
if (keyCode == KeyEvent.KEYCODE_BACK)
{
this.finish();
senden.cancel(true);
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.settings, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menu_settings:
Intent i = new Intent(this, Einstellungen.class);
startActivityForResult(i, RESULT_SETTINGS);
break;
}
return true;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case RESULT_SETTINGS:
refreshUserSettings();
break;
}
}
private void refreshUserSettings()
{
SharedPreferences sharedPrefs = PreferenceManager
.getDefaultSharedPreferences(this);
if(sharedPrefs.getString("dbip", "192.168.137.1").equals(""))
{
dbManager.HOST = "Http://192.168.137.1:5984/";
System.out.println("BLUB");
}else
{
dbManager.HOST = "Http://" + sharedPrefs.getString("dbip", "192.168.137.1") + ":5984/";
System.out.println("DBIP: " + dbManager.HOST);
}
verbindungstest();
}
public boolean verbindungstest()
{
ping = false;
wait = false;
//Toast.makeText(getApplicationContext(), "Verbindung zur Datenbank wird geprüft", Toast.LENGTH_LONG).show();
final Handler myHandler = new Handler(); // wird automatisch mit aktuellem Thread vebunden.
new Thread()
{
public void run()
{
try
{
URL url = new URL(dbManager.HOST);
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setRequestProperty("User-Agent", "Android Application:");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(2000); // mTimeout is in seconds
urlc.connect();
if (urlc.getResponseCode() == 200)
{
//MainActivity.Log("getResponseCode == 200");
ping = true;
}
} catch (MalformedURLException e1)
{
e1.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
wait = true;
}
}.start();
while(!wait)
{
}
if(!ping)
{
Toast.makeText(getApplicationContext(), "keine Verbindung zur Datenbank", Toast.LENGTH_LONG).show();
}
return ping;
}
[U][B] private static class sende extends AsyncTask<String, Void, String>[/B][/U]
{
@Override
protected String doInBackground(String... params)
{
ArduinoCommManager manager = new ArduinoCommManager();
try
{
[U][B] if(this.isCancelled())
{
return null;
}[/B][/U]
manager.pentatonikPiano(6, Inet4Address.getByName(arduinoIP), arduinoPort, messenger);
Mainscreen.tastzahl = 0;
} catch (Exception e)
{
e.printStackTrace();
}
return null;
}
}
}