Bir radyo Akışını yayınlıyorum. Akıştaki şarkı değiştiğinde bir bildirim oluşturmak istiyorum. Geçerli akışın meta verilerini almak için streamscraper (http://code.google.com/p/streamscraper) kullanıyorum ve meta veriler değiştiğinde bir bildirim oluşturmaya çalışıyorum.Async Görevini Çağırmak
Bunu uygulamak için oluşturduğum Eşgüdüm Görevi.
public class updateMetadata extends
AsyncTask<String, Void, PlaylistSong<BaseArtist, BaseAlbum>> {
private static final String TAG = updateMetadata.class.getSimpleName();
private PlaylistSong<BaseArtist, BaseAlbum> oldSong = null;
private PlaylistSong<BaseArtist, BaseAlbum> newSong = null;
private metadataHarvester fetchMetadata = new metadataHarvester();
private String streamUrl = null;
@Override
protected PlaylistSong<BaseArtist, BaseAlbum> doInBackground(String... urls) {
for (String url : urls) {
try {
oldSong = fetchMetadata.prepareRadioSong(url);
} catch (Exception e) {
e.printStackTrace();
}
streamUrl = url;
}
newSong = oldSong;
while (newSong == oldSong) {
try {
newSong = fetchMetadata.prepareRadioSong(streamUrl);
} catch (Exception e) {
e.printStackTrace();
}
}
return newSong;
}
@Override
protected void onPostExecute(PlaylistSong<BaseArtist, BaseAlbum> song) {
Log.v(TAG, "New Song: " + song.getTitle());
}
}
Uygulama, iki bağlantılı projeye dayanmaktadır. Proje A, Uygulamanın başlatıldığı ve Proje B'nin koleksiyonları ve oynatma mantığını içerdiği yerdir. Bu görevi Proje B'de kullanmak istiyorum. Oyun işlevi (B projesinde). Uygulamayı denediğimde uygulama çöküyor.
04-04 23:34:34.975: E/WindowManager(18080): Activity ch.ethz.dcg.pancho2.view.radioplayer.RadioPlayerActivity has leaked window [email protected] that was originally added here
04-04 23:34:34.975: E/WindowManager(18080): android.view.WindowLeaked: Activity ch.ethz.dcg.pancho2.view.radioplayer.RadioPlayerActivity has leaked window [email protected] that was originally added here
04-04 23:34:34.975: E/WindowManager(18080): at android.view.ViewRoot.<init>(ViewRoot.java:258)
04-04 23:34:34.975: E/WindowManager(18080): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
04-04 23:34:34.975: E/WindowManager(18080): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
04-04 23:34:34.975: E/WindowManager(18080): at android.view.Window$LocalWindowManager.addView(Window.java:424)
04-04 23:34:34.975: E/WindowManager(18080): at android.app.Dialog.show(Dialog.java:241)
04-04 23:34:34.975: E/WindowManager(18080): at android.app.ProgressDialog.show(ProgressDialog.java:107)
04-04 23:34:34.975: E/WindowManager(18080): at android.app.ProgressDialog.show(ProgressDialog.java:90)
04-04 23:34:34.975: E/WindowManager(18080): at ch.ethz.dcg.pancho2.view.radioplayer.RadioPlayerActivity$5.onClick(RadioPlayerActivity.java:276)
04-04 23:34:34.975: E/WindowManager(18080): at android.view.View.performClick(View.java:2485)
04-04 23:34:34.975: E/WindowManager(18080): at android.view.View$PerformClick.run(View.java:9080)
04-04 23:34:34.975: E/WindowManager(18080): at android.os.Handler.handleCallback(Handler.java:587)
04-04 23:34:34.975: E/WindowManager(18080): at android.os.Handler.dispatchMessage(Handler.java:92)
04-04 23:34:34.975: E/WindowManager(18080): at android.os.Looper.loop(Looper.java:130)
04-04 23:34:34.975: E/WindowManager(18080): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-04 23:34:34.975: E/WindowManager(18080): at java.lang.reflect.Method.invokeNative(Native Method)
04-04 23:34:34.975: E/WindowManager(18080): at java.lang.reflect.Method.invoke(Method.java:507)
04-04 23:34:34.975: E/WindowManager(18080): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-04 23:34:34.975: E/WindowManager(18080): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-04 23:34:34.975: E/WindowManager(18080): at dalvik.system.NativeStart.main(Native Method)
Kafam karışık zaman uyumsuz Görevler benim anlayış: Burada
, tam hata izidir. Bu onları kullanmak için doğru bir yol değil mi?
DÜZENLEME: Yanıt ayrıca eklendi.
Temel olarak, çıkış etkinliğinizden sonra iletişim göstermeye çalışıyorsunuz. Yukarıdakilerin gerçekleşmesinin çeşitli nedenleri vardır, ancak kodunuzdaki iletişim hakkında hiçbir şey göremiyorum. İletişim kullanıyor musunuz? –
Hayır, geçerli şarkı değiştikten sonra yeni şarkıyı kaydetmeye çalışıyorum. Bu aşamada hiçbir diyalog veya herhangi bir şey yok. Zaten bir çok kanallı dinleyici ayarlamam var. Yeni şarkıları kontrol etmenin çalıştığından emin olduğumda bunu söyleyebilirim. – rahulthewall
RadioPlayerActivity onclick yönteminizde herhangi bir iletişim veya ilerleme iletişim kutusu göstermeye mi çalışıyorsunuz? – Ads