Java 异步任务android。。怎么办? public void onItemClick(AdapterView父视图、视图、, 内部位置,长id){ Intent Intent=新的Intent(getApplicationContext(),RssActivity.class); intent.putExtra(NEKI_字符串,listItems.get(position.getLink().toString()); 星触觉(意向); }

Java 异步任务android。。怎么办? public void onItemClick(AdapterView父视图、视图、, 内部位置,长id){ Intent Intent=新的Intent(getApplicationContext(),RssActivity.class); intent.putExtra(NEKI_字符串,listItems.get(position.getLink().toString()); 星触觉(意向); },java,android,eclipse,Java,Android,Eclipse,所以我在ItemClick上有这个事件我想开始我的活动,但我想把它放在一个私有类AsyncTaskRunner extends AsyncTask中,因为我的老师希望它在没有internet连接时不会崩溃。还有其他方法吗?如何实现AsyncTask?我尝试复制/粘贴AsyncTask函数的TryCatch块中的意图,但没有成功,只是崩溃了 您可以使用此方法检查internet连接: public void onItemClick(AdapterView<?> parent, View

所以我在ItemClick上有这个事件我想开始我的活动,但我想把它放在一个私有类AsyncTaskRunner extends AsyncTask中,因为我的老师希望它在没有internet连接时不会崩溃。还有其他方法吗?如何实现AsyncTask?我尝试复制/粘贴AsyncTask函数的TryCatch块中的意图,但没有成功,只是崩溃了

您可以使用此方法检查internet连接:

public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
                Intent intent=new Intent(getApplicationContext(),RssActivity.class);
                intent.putExtra(NEKI_STRING,listItems.get(position).getLink().toString());
                startActivity(intent);
        }
然后在异步任务中使用它,就像老师希望的那样

public static boolean isNetworkAvailable(Context context) {
    ConnectivityManager connectivityManager
            = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
私有类AsyncTaskRunner扩展了AsyncTask{
私人语境;
私有字符串NEKI_字符串;
私有字符串listItemString;
公共AsyncTaskRunner(上下文上下文、字符串neki_字符串、字符串listItemString){
this.context=上下文;
NEKI_字符串=NEKI_字符串;
this.listItemString=listItemString;
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
如果(网络可用(上下文)){
返回“OK”;
}
返回“”;
}
@凌驾
受保护的void onPostExecute(字符串回复){
super.onPostExecute(回复);
如果(回复等于(“确定”)){
试一试{
Intent Intent=新的Intent(getApplicationContext(),RssActivity.class);
intent.putExtra(NEKI_字符串、listItemString);
星触觉(意向);
}捕获(例外e){
}
}
}
}

异步任务不是因为需要它,而是因为您需要实现它

然后运行异步任务:

private class AsyncTaskRunner extends AsyncTask<String, String, String>{

    private Context context;
    private String NEKI_STRING;
    private String listItemString;

    public AsyncTaskRunner(Context context ,String neki_string, String listItemString){

        this.context = context;
        NEKI_STRING = neki_string;
        this.listItemString = listItemString;
    }

    @Override
    protected String doInBackground(String... params) {


        if(isNetworkAvailable(context)){


            return "OK";


        }

        return "";
    }

    @Override
    protected void onPostExecute(String reply) {
        super.onPostExecute(reply);

        if(reply.equals("OK")) {
            try{
            Intent intent=new Intent(getApplicationContext(),RssActivity.class);
            intent.putExtra(NEKI_STRING,listItemString);
            startActivity(intent);
            }catch(Exception e){

            }
        }
    }
public void onItemClick(AdapterView父视图、视图、,
新的AsyncTaskRunner(getApplicationContext(),NEKI_字符串,listItems.get(position).getLink().toString()).execute();
}

如果应用程序在
RssActivity
中崩溃,请在该类中处理该崩溃,因此发布崩溃的堆栈跟踪和
RssActivity
中的相关代码。
public void onItemClick(AdapterView<?> parent, View view,
            new AsyncTaskRunner(getApplicationContext(), NEKI_STRING, listItems.get(position).getLink().toString()).execute();
    }