Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用调用startActivity()重新启动应用程序,但获取;使用“完成操作”;_Android_Android Activity_Android Alertdialog - Fatal编程技术网

Android 使用调用startActivity()重新启动应用程序,但获取;使用“完成操作”;

Android 使用调用startActivity()重新启动应用程序,但获取;使用“完成操作”;,android,android-activity,android-alertdialog,Android,Android Activity,Android Alertdialog,我希望在alertDialog中按“OK”时重新启动应用程序。但当我按下按钮时,我会看到“使用完整操作”屏幕,我如何启动我的应用程序而不必转到“完整操作…” 这是重启应用程序的正确方法吗 另外,我需要重新启动应用程序,因为最初应用程序启动时,列表是从本地数据库显示的,然后从服务器获取新数据并更新本地数据库后,我无法显示更新的列表。它在重启应用程序后工作 调用startActivity的代码: Toast.makeText(mContext, "Reading complete", Toast.L

我希望在alertDialog中按“OK”时重新启动应用程序。但当我按下按钮时,我会看到“使用完整操作”屏幕,我如何启动我的应用程序而不必转到“完整操作…”

这是重启应用程序的正确方法吗

另外,我需要重新启动应用程序,因为最初应用程序启动时,列表是从本地数据库显示的,然后从服务器获取新数据并更新本地数据库后,我无法显示更新的列表。它在重启应用程序后工作

调用startActivity的代码:

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);