【发布时间】:2014-09-04 05:17:49
【问题描述】:
我想从 post execute 开始另一个 Activity 并向它传递一些参数。但它强制关闭应用程序。这是我的onPostExecute():
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (result != null) {
imageView.setImageBitmap(result);
imageView.setOnClickListener(new OnClickListener(){
public void onClick(View view) {
Toast.makeText(context, ""+captionStr, Toast.LENGTH_LONG).show();
Intent intent = new Intent(context, Article.class);
Bundle b = new Bundle();
b.putString("url", "Hello"); //Your id
intent.putExtras(b); //Put your id to your next Intent
context.startActivity(intent);
// context.finish();*/
}
});
} else {
imageView.setImageResource(R.drawable.ic_launcher);
}
}
我的清单声明
<activity android:name=".com.tdodemo.tdo.Article" />
日志猫
09-04 10:53:30.759: E/AndroidRuntime(15546): FATAL EXCEPTION: main
09-04 10:53:30.759: E/AndroidRuntime(15546): Process: com.tdodemo.tdo, PID: 15546
09-04 10:53:30.759: E/AndroidRuntime(15546): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
09-04 10:53:30.759: E/AndroidRuntime(15546): at android.app.ContextImpl.startActivity(ContextImpl.java:1146)
09-04 10:53:30.759: E/AndroidRuntime(15546): at android.app.ContextImpl.startActivity(ContextImpl.java:1133)
09-04 10:53:30.759: E/AndroidRuntime(15546): at android.content.ContextWrapper.startActivity(ContextWrapper.java:328)
09-04 10:53:30.759: E/AndroidRuntime(15546): at com.tdodemo.tdo.ImageLoadTask$1.onClick(ImageLoadTask.java:82)
09-04 10:53:30.759: E/AndroidRuntime(15546): at android.view.View.performClick(View.java:4562)
09-04 10:53:30.759: E/AndroidRuntime(15546): at android.view.View$PerformClick.run(View.java:18918)
09-04 10:53:30.759: E/AndroidRuntime(15546): at android.os.Handler.handleCallback(Handler.java:808)
09-04 10:53:30.759: E/AndroidRuntime(15546): at android.os.Handler.dispatchMessage(Handler.java:103)
09-04 10:53:30.759: E/AndroidRuntime(15546): at android.os.Looper.loop(Looper.java:193)
09-04 10:53:30.759: E/AndroidRuntime(15546): at android.app.ActivityThread.main(ActivityThread.java:5388)
09-04 10:53:30.759: E/AndroidRuntime(15546): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 10:53:30.759: E/AndroidRuntime(15546): at java.lang.reflect.Method.invoke(Method.java:515)
09-04 10:53:30.759: E/AndroidRuntime(15546): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-04 10:53:30.759: E/AndroidRuntime(15546): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:655)
09-04 10:53:30.759: E/AndroidRuntime(15546): at dalvik.system.NativeStart.main(Native Method)
【问题讨论】:
-
为什么 imageView.setOnClickListener 在 onPostExe....?
-
发布您的 Logcat 错误
-
在 doInBackground() 中,我正在从服务器加载图像,在 onpostExecute() 中,我将其设置为 ImageView。单击此图像后,我想开始另一个活动。
-
@Manasi 在您的帖子中发布错误以便我们调试问题
-
错误说明了一切:您需要添加一个标志
FLAG_ACTIVITY_NEW_TASK。编辑:或将Context变量添加到您的AsyncTask并使用它。
标签: android android-activity android-asynctask