- ABC.class İlk etkinlik Class alınıyor bir Android Etkinliğinizden bir başka Etkinlik AsyncTask Class Call.
- XYZ.class, AsyncTask Activity Class'tır.
Uygulamamda 10'dan fazla Async görevi var, bu yüzden Ayrı Sınıftaki Async görevini tuttum.nasıl NPE
Başka Bir Etkinliği Asynctask Sınıfını (XYZ.class) bir Etkinliğin (ABC.class) Çağrısı.
Sorun:
1.I (Azure Yerel Veri Tabanı Veri Alma) zaman uyumsuz Görev ABC.class uzak ama, ben XYZ.class OnCreate iç Class Bazı Örnek değerlerini tuttu böyle hitap edebilir . Yani Asynctask Başlarken NPE.
2.Oncreate Metodu Çalışmıyor, Bu Async görevi Diğer Etkinlik'ten çağırıyorsa.
3.İnsan doinbackgroud iM NPE Hatası alıyorum.
Bunu nasıl çözeceğime, başka bir çözüm öner.
DÜZENLEME: DB Yerel , bu yüzden ben içeride onCreate tuttu neyi Örneklerini ihtiyaç Azure Sunucusundan Veri getirilirken benim zaman uyumsuz görev IAM ise 1
.
th_tbusergroupmapping benim Veritabanı Adı olduğu zaman uyumsuz Görevi
AsyncTaskload_UserGroupMappingTableClass myClass = new AsyncTaskload_UserGroupMappingTableClass(getApplicationContext());
myClass.execute();
XYZ.class çağrılması ABC.class
/*CLient for Table5 */
private static MobileServiceClient mClient_UserGroupMapping;
//ONLINE CLIENT AZURE
public static MobileServiceTable<th_tbusergroupmapping> mToDoTable_UserGroupMapping_ServerAzure;
//Offline CLient FOr LOCAL Datbase.
public static MobileServiceSyncTable<th_tbusergroupmapping> mToDoTable_UserGroupMapping_Local_Database;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
try {
// Create the Mobile Service Client instance, using the provided
// Mobile Service URL and key
mClient_UserGroupMapping = new MobileServiceClient(
"***********",
"**************",
this).withFilter(new ProgressFilter());
/*UserGroupMapping*/
// Get the Mobile Service Table instance to use
mToDoTable_UserGroupMapping_ServerAzure = mClient_UserGroupMapping.getTable(th_tbusergroupmapping.class);
// LOCAL DATABASE TABLE Instance to use
mToDoTable_UserGroupMapping_Local_Database= mClient_UserGroupMapping.getSyncTable("th_tbusergroupmapping", th_tbusergroupmapping.class);
//Init local storage
initLocalStore().get();
}
catch (MalformedURLException e)
{
Log.i("Oncreate", "There was an error creating the Mobile Service. Verify the URL......!");
} catch (Exception e) {
Log.i("Oncreate", "Exception Occur......!");
}
}
public static class AsyncTaskload_UserGroupMappingTableClass extends AsyncTask<Void, String, Void>
{
private Context context;
public AsyncTaskload_UserGroupMappingTableClass(Context context) {
this.context = context;
}
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params)
{
}
@Override
protected void onPostExecute(Void result)
{
try
{
Log.i("DONE ", "Data Sync Done Successfully UserGroupMapping 1");
} catch (Exception e)
{
e.printStackTrace();
Log.i("Exception ", "Post Excecute");
}
}
}
Gereksinim duyduğunuz değerleri AsyncTask yapıcınıza iletebilir ve özel alanları olarak kaydedebilirsiniz. Bu senin için işe yarayacak mı? – Vucko
Değerleri iletemiyorum, Çünkü Sunucudan Veri Alıyor. Mobil hizmetini başlatmalı ve Oncreate’ı içeride anahtarlamalıyım. – Kumar
AsyncTask'ın ana kusuru, Etkinlik yaşam döngüsü için çok zayıf bir şekilde sıkı olmasıdır. Yanlışlıkla kullanıldığında ya da sadece dikkatli bir şekilde bile yeterince dikkatli olmamanız, genellikle NPE hatalarına neden olur. Sizin durumunuzda, AsyncTask örneğini başka bir etkinlikten kullanırsınız, yani dürüst olmak gerekirse oldukça dağınık görünür.Çeşitli aktivitelerde bazı AsyncTask nesnelerini kullanmanız gerekiyorsa, bunu ayrı bir sınıf dosyasında tutmanız, hangi verilere ihtiyaç duyduğunu ve bunun için uygun bir kurucu tasarlamanız gerekir. –