내 제목이 내 안드로이드가 추락 할 때 설명하기에 충분하지 않다고 생각합니다. 내 응용 프로그램에 3 개의 탭 위젯이 있습니다. 이는 각각의 탭 위젯에 3 가지 액티비티 (accountMainThread.java, TodayExpenseList.java 및 settingThread)가 적용되었음을 의미합니다. 여기에 내 탭 활동 코드가 있습니다.다른 탭을 터치 할 때 Android 충돌이 2 번 발생합니다
TabSpec mainSpec = addNewTab(tab1,android.R.drawable.ic_menu_upload);
Intent mainIntent = new Intent(AccountTabActivity.this,accountMainThread.class);
mainSpec.setContent(mainIntent);
tabHost.addTab(mainSpec);
TabSpec todayExpenseListSpec = addNewTab(tab2,android.R.drawable.ic_menu_today);
Intent todayExpenseListIntent = new Intent(AccountTabActivity.this,TodayExpenseList.class);
todayExpenseListSpec.setContent(todayExpenseListIntent);
tabHost.addTab(todayExpenseListSpec);
TabSpec settingSpec = addNewTab(tab3,android.R.drawable.ic_menu_manage);
Intent settingIntent = new Intent(AccountTabActivity.this,settingThread.class);
settingSpec.setContent(settingIntent);
tabHost.addTab(settingSpec);
내 작품의 유일한 부분. 글쎄, 내 응용 프로그램은 첫 번째 탭 (accountMainThread)에서 시작되며 응용 프로그램이 잘 작동합니다. 그런 다음 두 번째 탭 (오늘 비용 목록)을 탭하고 여전히 동일합니다. 그런 다음 세 번째 탭 (settingThread) 탭을 클릭하고 여전히 동일합니다. 문제는 내가 다음 탭 탭 또는 두 번째 탭 또는 세 번째 탭에서 탭을 탭하면 내 응용 프로그램이 충돌하는 것입니다. 내 설명이 충분히 이해되기를 바랍니다.
여기 여기 내 전체 tabActivity 코드
public class AccountTabActivity extends TabActivity {
private String[] idItem;
private static connectionDatabase dbConnect;
private static SQLLiteAdapter mDbHelper;
private static int totalTodayExpense = 0;
private static String tab1 = "Send Expense";
private static String tab2 = "Today Expense";
private static String tab3 = "Setting";
private static TabHost tabHost;
private static int dataProcessed = 0;
private static RelativeLayout startupLayout;
private static ProgressBar startupProgress;
private static TextView startupText;
private int progressValues[] = {0,50,70,90,98,100};
private String startupSequences[] = {
"Initializing",
"Connecting database",
"Initializing array list",
"Retrieving data",
"Synchronizing data with server",
"Setting up UI thread"
};
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//-----------------------------------------------
setContentView(R.layout.android_tab_activity);
startupLayout = (RelativeLayout)findViewById(R.id.startup_layout);
startupProgress = (ProgressBar)findViewById(R.id.startup_progressbar);
startupText = (TextView)findViewById(R.id.startup_textview);
tabHost = getTabHost(); /*
tabHost.setOnTabChangedListener(new OnTabChangeListener(){
@Override
public void onTabChanged(String tabId) {
//setTabColor(tabHost);
}
});
*/
new readyTabActivity().execute();
dataProcessed = 1;
}
public void setTabColor(TabHost tabhost){
for(int i=0;i<tabhost.getTabWidget().getChildCount();i++){
tabhost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.not_select);
}
tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab())
.setBackgroundResource(R.drawable.selected);
}
private class readyTabActivity extends AsyncTask<String,Integer,Void>{
private int connectedFlag = 0;
private JSONArray jsonArray;
private int dataHavenSyncYet = 0;
private SQLLiteAdapter mDbHelper;
@Override
protected void onPreExecute(){
startupProgress.setProgress(progressValues[0]);
}
protected Void doInBackground(String... url){
try{
dbConnect = new connectionDatabase();
mDbHelper = new SQLLiteAdapter(AccountTabActivity.this);
mDbHelper.open();
publishProgress(1);
List<NameValuePair> params = new ArrayList<NameValuePair>();
publishProgress(1);
JSONObject jsonObject = dbConnect.HttpRequest(dbConnect.url_readData, "get",params);
publishProgress(2);
if(jsonObject.getBoolean("list")){
connectedFlag = 1;
jsonArray = (JSONArray)jsonObject.get("list");
}else{
connectedFlag = 0;
}
publishProgress(3);
}catch(Exception e){
connectedFlag = 0;
Log.e("Icreate", "error on database : " + e.toString());
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
startupLayout.setVisibility(View.GONE);
////////////////////////////////////////////////////////////////
// main Thread
TabSpec mainSpec = addNewTab(tab1,android.R.drawable.ic_menu_upload);
Intent mainIntent = new Intent(AccountTabActivity.this,accountMainThread.class);
mainSpec.setContent(mainIntent);
mainIntent.putExtra("CONNECT", connectedFlag);
tabHost.addTab(mainSpec);
TabSpec todayExpenseListSpec = addNewTab(tab2,android.R.drawable.ic_menu_today);
Intent todayExpenseListIntent = new Intent(AccountTabActivity.this,TodayExpenseList.class);
todayExpenseListSpec.setContent(todayExpenseListIntent);
todayExpenseListIntent.putExtra("CONNECT", connectedFlag);
tabHost.addTab(todayExpenseListSpec);
////////////////////////////////////////////////////////////////
// setting Thread
TabSpec settingSpec = addNewTab(tab3,android.R.drawable.ic_menu_manage);
Intent settingIntent = new Intent(AccountTabActivity.this,settingThread.class);
ArrayList<Map<String,String>> arraySTList =
(ArrayList<Map<String,String>>)buildSettingThreadData();
settingIntent.putExtra("CONNECT", connectedFlag);
settingIntent.putExtra("array_st_list", arraySTList);
settingSpec.setContent(settingIntent);
tabHost.addTab(settingSpec);
/////////////////////////////////////////////////////
// add tab to tabHost
}
@Override
protected void onProgressUpdate(Integer... values){
startupProgress.setProgress(progressValues[values[0]]);
startupText.setText(""+startupSequences[values[0]]);
}
private TabSpec addNewTab(String title, int drawable){
TabHost.TabSpec mainSpec = tabHost.newTabSpec(title);
View tabIndicator = LayoutInflater.from(AccountTabActivity.this).inflate(R.layout.tab_indicator,getTabWidget(),false);
TextView title_text = (TextView)tabIndicator.findViewById(R.id.title);
title_text.setText(title);
ImageView icon = (ImageView)tabIndicator.findViewById(R.id.icon);
icon.setImageResource(drawable);
mainSpec.setIndicator(tabIndicator);
return mainSpec;
}
private ArrayList<Map<String, String>> buildSettingThreadData(){
ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();
list.add(putSTData("Database State",dbConnect.connectionState));
list.add(putSTData("URL Retrieve Data",dbConnect.url_readData));
list.add(putSTData("URL Insert Data",dbConnect.url_insertData));
list.add(putSTData("URL Delete Data",dbConnect.url_deleteData));
list.add(putSTData("Creator","Lik Wee"));
return list;
}
private HashMap<String, String> putSTData(String title, String content) {
HashMap<String, String> item = new HashMap<String, String>();
item.put("title", title);
item.put("content", content);
return item;
}
}
}
의 내가 어떤 explaination 및 코드의 경우를 제공 할 것입니다
03-20 13:08:16.742: E/ActivityThread(661): Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]efa88 that was originally bound here
03-20 13:08:16.742: E/ActivityThread(661): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]efa88 that was originally bound here
03-20 13:08:16.742: E/ActivityThread(661): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
03-20 13:08:16.742: E/ActivityThread(661): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
03-20 13:08:16.742: E/ActivityThread(661): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
03-20 13:08:16.742: E/ActivityThread(661): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
03-20 13:08:16.742: E/ActivityThread(661): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
03-20 13:08:16.742: E/ActivityThread(661): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
03-20 13:08:16.742: E/ActivityThread(661): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
03-20 13:08:16.742: E/ActivityThread(661): at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
03-20 13:08:16.742: E/ActivityThread(661): at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
03-20 13:08:16.742: E/ActivityThread(661): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
03-20 13:08:16.742: E/ActivityThread(661): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
03-20 13:08:16.742: E/ActivityThread(661): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
03-20 13:08:16.742: E/ActivityThread(661): at android.os.AsyncTask$2.call(AsyncTask.java:287)
03-20 13:08:16.742: E/ActivityThread(661): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
03-20 13:08:16.742: E/ActivityThread(661): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
03-20 13:08:16.742: E/ActivityThread(661): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
03-20 13:08:16.742: E/ActivityThread(661): at java.lang.Thread.run(Thread.java:856)
03-20 13:08:16.753: E/StrictMode(661): null
03-20 13:08:16.753: E/StrictMode(661): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]efa88 that was originally bound here
03-20 13:08:16.753: E/StrictMode(661): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
03-20 13:08:16.753: E/StrictMode(661): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
03-20 13:08:16.753: E/StrictMode(661): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
03-20 13:08:16.753: E/StrictMode(661): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
03-20 13:08:16.753: E/StrictMode(661): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
03-20 13:08:16.753: E/StrictMode(661): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
03-20 13:08:16.753: E/StrictMode(661): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
03-20 13:08:16.753: E/StrictMode(661): at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
03-20 13:08:16.753: E/StrictMode(661): at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
03-20 13:08:16.753: E/StrictMode(661): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
03-20 13:08:16.753: E/StrictMode(661): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
03-20 13:08:16.753: E/StrictMode(661): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
03-20 13:08:16.753: E/StrictMode(661): at android.os.AsyncTask$2.call(AsyncTask.java:287)
03-20 13:08:16.753: E/StrictMode(661): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
03-20 13:08:16.753: E/StrictMode(661): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
03-20 13:08:16.753: E/StrictMode(661): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
03-20 13:08:16.753: E/StrictMode(661): at java.lang.Thread.run(Thread.java:856)
03-20 13:08:16.762: E/ActivityThread(661): Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]2af40 that was originally bound here
03-20 13:08:16.762: E/ActivityThread(661): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]2af40 that was originally bound here
03-20 13:08:16.762: E/ActivityThread(661): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
03-20 13:08:16.762: E/ActivityThread(661): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
03-20 13:08:16.762: E/ActivityThread(661): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
03-20 13:08:16.762: E/ActivityThread(661): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
03-20 13:08:16.762: E/ActivityThread(661): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
03-20 13:08:16.762: E/ActivityThread(661): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
03-20 13:08:16.762: E/ActivityThread(661): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
03-20 13:08:16.762: E/ActivityThread(661): at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
03-20 13:08:16.762: E/ActivityThread(661): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
03-20 13:08:16.762: E/ActivityThread(661): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
03-20 13:08:16.762: E/ActivityThread(661): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
03-20 13:08:16.762: E/ActivityThread(661): at android.os.AsyncTask$2.call(AsyncTask.java:287)
03-20 13:08:16.762: E/ActivityThread(661): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
03-20 13:08:16.762: E/ActivityThread(661): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
03-20 13:08:16.762: E/ActivityThread(661): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
03-20 13:08:16.762: E/ActivityThread(661): at java.lang.Thread.run(Thread.java:856)
03-20 13:08:16.772: E/StrictMode(661): null
03-20 13:08:16.772: E/StrictMode(661): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]2af40 that was originally bound here
03-20 13:08:16.772: E/StrictMode(661): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
03-20 13:08:16.772: E/StrictMode(661): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
03-20 13:08:16.772: E/StrictMode(661): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
03-20 13:08:16.772: E/StrictMode(661): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
03-20 13:08:16.772: E/StrictMode(661): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
03-20 13:08:16.772: E/StrictMode(661): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
03-20 13:08:16.772: E/StrictMode(661): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
03-20 13:08:16.772: E/StrictMode(661): at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
03-20 13:08:16.772: E/StrictMode(661): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
03-20 13:08:16.772: E/StrictMode(661): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
03-20 13:08:16.772: E/StrictMode(661): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
03-20 13:08:16.772: E/StrictMode(661): at android.os.AsyncTask$2.call(AsyncTask.java:287)
03-20 13:08:16.772: E/StrictMode(661): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
03-20 13:08:16.772: E/StrictMode(661): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
03-20 13:08:16.772: E/StrictMode(661): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
03-20 13:08:16.772: E/StrictMode(661): at java.lang.Thread.run(Thread.java:856)
내가 가지고있는 로그 내가 사고를 얻었다 후 (응용 프로그램이 충돌하기 전에 나는 부분을 삭제)입니다 필요합니다. 나는 이미이 문제에 대해 하루 만에 다뤘다. 누군가가 나를 해결할 수 있기를 바랍니다. 고맙습니다.