- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我认为我的标题不足以解释我的 android 何时会崩溃。我的应用程序上有 3 个选项卡小部件。这意味着我有 3 个 Activity (accountMainThread.java、TodayExpenseList.java 和 settingThread)适应每个选项卡小部件。这是我的选项卡 Activity 代码。
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) 开始,并且应用程序运行良好。然后,我选择第二个选项卡 (todayExpenseList),仍然是一样的,没有错。然后,我选择第三个选项卡(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;
}
}
}
这是我崩溃后的日志(我删除了应用程序崩溃前的部分)
03-20 13:08:16.742: E/ActivityThread(661): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40cefa88 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 com.android.emailcommon.service.ServiceProxy$ProxyConnection@40cefa88 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 com.android.emailcommon.service.ServiceProxy$ProxyConnection@40cefa88 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 com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d2af40 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 com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d2af40 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 com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d2af40 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)
如果需要,我会提供任何解释和代码。我已经处理这个问题一天了。我真的希望有人能帮我解决这个问题。谢谢
最佳答案
感谢所有花时间帮助解决这个问题的人。我发现了我的问题。在 TodayExpenseList.java 中,关于 onPause 生命周期方法。我试图关闭使我的应用程序崩溃的 SQLlite 数据库。在我删除 onPause 方法上的 SQLlite 数据库 close() 方法后,一切都变得很好。
关于在不同的标签上触摸 2 次时发生 Android 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15525153/
我最近在/ drawable中添加了一些.gifs,以便可以将它们与按钮一起使用。这个工作正常(没有错误)。现在,当我重建/运行我的应用程序时,出现以下错误: Error: Gradle: Execu
Android 中有返回内部存储数据路径的方法吗? 我有 2 部 Android 智能手机(Samsung s2 和 s7 edge),我在其中安装了一个应用程序。我想使用位于这条路径中的 sqlit
这个问题在这里已经有了答案: What's the difference between "?android:" and "@android:" in an android layout xml f
我只想知道 android 开发手机、android 普通手机和 android root 手机之间的实际区别。 我们不能从实体店或除 android marketplace 以外的其他地方购买开发手
自Gradle更新以来,我正在努力使这个项目达到标准。这是一个团队项目,它使用的是android-apt插件。我已经进行了必要的语法更改(编译->实现和apt->注释处理器),但是编译器仍在告诉我存在
我是android和kotlin的新手,所以请原谅要解决的一个非常简单的问题! 我已经使用导航体系结构组件创建了一个基本应用程序,使用了底部的导航栏和三个导航选项。每个导航选项都指向一个专用片段,该片
我目前正在使用 Facebook official SDK for Android . 我现在正在使用高级示例应用程序,但我不知道如何让它获取应用程序墙/流/状态而不是登录的用户。 这可能吗?在那种情
我在下载文件时遇到问题, 我可以在模拟器中下载文件,但无法在手机上使用。我已经定义了上网和写入 SD 卡的权限。 我在服务器上有一个 doc 文件,如果用户单击下载。它下载文件。这在模拟器中工作正常但
这个问题在这里已经有了答案: What is the difference between gravity and layout_gravity in Android? (22 个答案) 关闭 9
任何人都可以告诉我什么是 android 缓存和应用程序缓存,因为当我们谈论缓存清理应用程序时,它的作用是,缓存清理概念是清理应用程序缓存还是像内存管理一样主存储、RAM、缓存是不同的并且据我所知,缓
假设应用程序 Foo 和 Eggs 在同一台 Android 设备上。任一应用程序都可以获取设备上所有应用程序的列表。一个应用程序是否有可能知道另一个应用程序是否已经运行以及运行了多长时间? 最佳答案
我有点困惑,我只看到了从 android 到 pc 或者从 android 到 pc 的例子。我需要制作一个从两部手机 (android) 连接的 android 应用程序进行视频聊天。我在想,我知道
用于使用 Android 以编程方式锁定屏幕。我从 Stackoverflow 之前关于此的问题中得到了一些好主意,并且我做得很好,但是当我运行该代码时,没有异常和错误。而且,屏幕没有锁定。请在这段代
文档说: android:layout_alignParentStart If true, makes the start edge of this view match the start edge
我不知道这两个属性和高度之间的区别。 以一个TextView为例,如果我将它的layout_width设置为wrap_content,并将它的width设置为50 dip,会发生什么情况? 最佳答案
这两个属性有什么关系?如果我有 android:noHistory="true",那么有 android:finishOnTaskLaunch="true" 有什么意义吗? 最佳答案 假设您的应用中有
我是新手,正在尝试理解以下 XML 代码: 查看 developer.android.com 上的文档,它说“starStyle”是 R.attr 中的常量, public static final
在下面的代码中,为什么当我设置时单选按钮的外观会发生变化 android:layout_width="fill_parent" 和 android:width="fill_parent" 我说的是
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
假设我有一个函数 fun myFunction(name:String, email:String){},当我调用这个函数时 myFunction('Ali', 'ali@test.com ') 如何
我是一名优秀的程序员,十分优秀!