Android 使用调用startActivity()重新启动应用程序,但获取;使用“完成操作”;
我希望在alertDialog中按“OK”时重新启动应用程序。但当我按下按钮时,我会看到“使用完整操作”屏幕,我如何启动我的应用程序而不必转到“完整操作…” 这是重启应用程序的正确方法吗 另外,我需要重新启动应用程序,因为最初应用程序启动时,列表是从本地数据库显示的,然后从服务器获取新数据并更新本地数据库后,我无法显示更新的列表。它在重启应用程序后工作 调用startActivity的代码:Android 使用调用startActivity()重新启动应用程序,但获取;使用“完成操作”;,android,android-activity,android-alertdialog,Android,Android Activity,Android Alertdialog,我希望在alertDialog中按“OK”时重新启动应用程序。但当我按下按钮时,我会看到“使用完整操作”屏幕,我如何启动我的应用程序而不必转到“完整操作…” 这是重启应用程序的正确方法吗 另外,我需要重新启动应用程序,因为最初应用程序启动时,列表是从本地数据库显示的,然后从服务器获取新数据并更新本地数据库后,我无法显示更新的列表。它在重启应用程序后工作 调用startActivity的代码: Toast.makeText(mContext, "Reading complete", Toast.L
Toast.makeText(mContext, "Reading complete", Toast.LENGTH_SHORT).show();
AlertDialog.Builder clickAlert = new AlertDialog.Builder(mContext);
clickAlert.setMessage("Database has been updated, please restart application to load new data. ");
clickAlert.setPositiveButton("Restart", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent i = new Intent("android.intent.action.MAIN");
mContext.startActivity(i);
}
});
clickAlert.create().show();
我有一个从字符串适配器填充的listFragment,这个字符串由从服务器返回数据的方法填充。我需要重新填充这个列表。 代码:
//获取包含storelist的游标
游标Cursor cursorstorelist=mDbHelper.getStoreList();
String[]StoreList=新字符串[curstrorelist.getCount()];
int i=0;
//将返回的项目存储在StoreList[]
while(curStoreList.moveToNext()){
String storeName=curstrorelist.getString(0);
StoreList[i]=店名;
i++;
}
//使用存储列表创建适配器,并使用
//价值观
ArrayAdapter=新的ArrayAdapter(getActivity(),
android.R.layout.simple_list_item_1,StoreList);
setListAdapter(适配器);
为什么要经历重启应用程序的所有麻烦呢。如果您使用notifyDataChanged,您可以更新列表(如果您正在谈论listview)。懒惰忍者是正确的。
请尝试以下操作:
//1. Add a new Runnable
private Runnable updateAdapter = new Runnable() {
public void run() {
adapter.notifyDataSetChanged();
}
};
//2. Change your onClick to this:
@Override
public void onClick(DialogInterface dialog, int which) {
runOnUiThread(updateAdapter);
}
//3. Dont forget to set the adapter into your listcomponent:
setAdapter(adapter);
setNotifyOnChange(true);
改弦易辙
Intent mainIntent = new Intent(your currentactivity.this, theclassyouwanttogo.class);
类似这样的设置将类替换为使用显式意图我有一个从字符串适配器填充的listFragment,这个字符串是从服务器返回数据的方法填充的。我认为您的问题是在更新数据库之前读取数据。首先更新数据库并读取它。从您的代码判断,您只在需要重新启动应用程序时更新它。这不是个好办法!
Intent i = new Intent("android.intent.action.MAIN");
mContext.startActivity(i);
Intent mainIntent = new Intent(your currentactivity.this, theclassyouwanttogo.class);